В уведомлении присутствуют 3 кнопки. По нажатию каждой из них должна открываться активность и выполняться определенное действие. Вот таким образом создаю уведомление:
Intent intentPrev = new Intent(this, ListOfSongsActivity.class);
intentPrev.putExtra("ACTION", "Prev");
PendingIntent pendingIntentPrev = PendingIntent.getActivity(this, 0, intentPrev, PendingIntent.FLAG_UPDATE_CURRENT);
Intent intentPlay = new Intent(this, ListOfSongsActivity.class);
intentPrev.putExtra("ACTION", "Play");
PendingIntent pendingIntentPlay = PendingIntent.getActivity(this, 0, intentPlay, PendingIntent.FLAG_UPDATE_CURRENT);
Intent intentNext = new Intent(this, ListOfSongsActivity.class);
intentPrev.putExtra("ACTION", "Next");
PendingIntent pendingIntentNext = PendingIntent.getActivity(this, 0, intentNext, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.notification).
setContentTitle(songs.get(songPos).getTitle()).setContentText(songs.get(songPos).getArtist()).
addAction(R.drawable.previous, "Previous", pendingIntentPrev).addAction(R.drawable.pause, "Pause", pendingIntentPlay).
addAction(R.drawable.next, "Next", pendingIntentNext);
Notification notification = builder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notification);
Честно говоря, не уверен, что это рационально создавать 3 Intent
'а, однако другого способа различить действия для этих интентов не нашел.
В активности создал ресивер
private BroadcastReceiver onPrepareReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
controller.show(0);
if (intent.getStringExtra("ACTION").equals("Prev")){
playPrev();
}
}
};
Остальные варианты прописывать не стал, потому что уже тут начало выдавать ошибку: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
Причем ошибка появляется как только создается уведомления, то есть кнопки еще не нажимаются. Скорее всего, решение вообще в корне неправильно, но в таком случае, как исправить, чтобы правильно сделать?
Виртуальный выделенный сервер (VDS) становится отличным выбором
При открытии сайта некоторые данные хранятся в SessionStorage в JSONКак их оттуда можно вытащить?
Будет ли приложение, написанное на JDK 11, работать у пользователя, у которого установлен JRE 8? Если нет, то как сделать так? (кроме как устанавливать...
я хотел добавить видо изменить плеер, но вместо того что бы заменить стандартные значки они у меня показываются на сайтеCSS файл я засунул...