自定义状态栏通知

时间:2012-02-22 19:33:24

标签: android notifications

我收到了自定义状态栏通知。有一个" Play"和"下一步"图像就可以了。 我想在"播放"时将广播意图发送到服务。或" next"图像被按下了。

notification = new Notification(R.drawable.ic_launcher, title + "\n"
        + text, System.currentTimeMillis());
contentIntent = PendingIntent.getActivity(context, 0, actionOnClick, 0);
notification.contentIntent = contentIntent;

contentView = new RemoteViews(context.getPackageName(),
        R.layout.custom_player_notification);
contentView.setTextViewText(R.id.custom_player_notification_title,
        title);
contentView.setTextViewText(R.id.custom_player_notification_text, text);
notification.contentView = contentView;

这是代码。 ContentView提供了设置" setOnClickPendingIntent"的可能性。和" setOnClickFillInIntent"。如何使用它们发送此广播? 我想发送广播,因为我不想发起活动。

2 个答案:

答案 0 :(得分:0)

  

我想在按下“播放”或“下一张”图像时向服务发送广播意图

我建议您通过startService()而不是广播发送命令。

  

如何使用它们发送此广播?

您可以尝试拨打setOnClickPendingIntent(),通过PendingIntent上的静态getBroadcast()方法(广播)或PendingIntent提供您创建的getService()要通过startService()发送的命令。

请记住,这些都不适用于目前大多数Android设备。我认为button-in - Notifications可以在Android 4.0上运行,也许是3.0,但绝对不是在此之前。

答案 1 :(得分:0)

您可以在通知的onClick()方法中添加与此相似的内容,并将其指向广播接收器。

        Intent intent = new Intent(this, receiver.class);
        intent.putExtra("SomeInfoMaybe", info);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                this.getApplicationContext(), 234324243, intent, PendingIntent.FLAG_CANCEL_CURRENT);

然后处理下一阶段的代码可以放在这里:

公共类接收器扩展了BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras(); 
    System.out.println("SomeInfoMaybe = " + bundle.getString("info"));
            //etc...
    }                                                                          

}

调用.notify();您的通知应该有助于链接到广播接收器