Я пытаюсь добавить элемент действия уведомления в своем приложении, которое является музыкальным проигрывателем. Когда поток запускается, уведомление должно быть вызвано, и кнопка остановки для потока должна отображаться в уведомлении. Уведомление работает нормально до сих пор, у меня возникают проблемы с пунктом остановки. Вот как это объявлено в службе, начинающей поток:
Intent stopIntent = new Intent(this, MusicPlayerNew.class);
stopIntent.putExtra("STOP", "STOP");
PendingIntent stopPendingIntent = PendingIntent.getActivity(this, 0,
stopIntent, PendingIntent.FLAG_UPDATE_CURRENT, null);
mBuilder.addAction(R.drawable.ic_stat_stop, "Stop", stopPendingIntent);
Теперь в методе onResume() моей активности я проверяю с помощью getIntent(). getStringExtra() для опции "STOP" дополнительно, но намерение, которое я получил через getIntent(), не имеет дополнительных настроек: (
Я также попытался проверить, чтобы отправить широковещательную рассылку (у меня есть широковещательный приемник, работающий для связи от службы к активности)
Intent stopIntent2 = new Intent(MusicPlayerNew.STOP_MEDIAPLAYER);
PendingIntent stopPendingIntent2 = PendingIntent.getBroadcast(this, 0,
stopIntent2, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.addAction(R.drawable.ic_stat_stop, "Stop", stopPendingIntent2);
Теперь это работает, если в настоящее время активность находится на переднем плане. Если действие находится в фоновом режиме, кнопка остановки ничего не делает: (
EDIT: У меня есть BroadcastReceiver в моей деятельности как частный класс
private class DataUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
..
}}
В onResume() зарегистрируйте мое приложение для этого получателя:
intentFilter = new IntentFilter(STOP_MEDIAPLAYER);
registerReceiver(dataUpdateReceiver, intentFilter);
OnPause()
unregisterReceiver(dataUpdateReceiver);
Теперь, если я удаляю регистрацию из метода onPause(), широковещательная передача принимается, даже если приложение/действие больше не находится на переднем плане. Но правильно ли это сделать? Я получил этот материал для регистрации/отписки от учебника в Интернете, я думаю.