使用这样的自定义操作名称创建一个 Intent
Intent switchIntent = new Intent("com.example.app.ACTION_PLAY");
然后,注册PendingIntentBroadcast接收器
PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 100, switchIntent, 0);
然后,为播放控件设置onClick,如果需要,对其他控件执行类似的自定义操作。
notificationView.setOnClickPendingIntent(R.id.btn_play_pause_in_notification, pendingSwitchIntent);
接下来,像这样在AudioPlayerBroadcastReceiver注册自定义动作
<receiver android:name="com.example.app.AudioPlayerBroadcastReceiver" >
<intent-filter>
<action android:name="com.example.app.ACTION_PLAY" />
</intent-filter>
</receiver>
最后,当在NotificationRemoteViews布局上点击播放时,你会收到play action的BroadcastReceiver
public class AudioPlayerBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equalsIgnoreCase("com.example.app.ACTION_PLAY")){
// do your stuff to play action;
}
}
}
您还可以像这样从注册的Broadcast receiver 的代码中设置Custom Action 到Intent filter
// instance of custom broadcast receiver
CustomReceiver broadcastReceiver = new CustomReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
// set the custom action
intentFilter.addAction("com.example.app.ACTION_PLAY");
// register the receiver
registerReceiver(broadcastReceiver, intentFilter);