Я искал около часа, чтобы найти какое-то решение, как отправлять дополнительные функции, когда пользователь нажимает кнопку в окне уведомлений, но все, что я нашел, не работает для меня.Android - уведомление putExtra issue
Мне нужно передать идентификатор события в действие, где я показываю информацию об этом событии.
Я использовал setFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP), setAction («Действие»), PendingIntent.FLAG_UPDATE_CURRENT и комбинацию всех этих решений, но ни одна из них не работала.
Вот мой код:
Notification.Builder notiBuilder = new Notification.Builder(context);
notiBuilder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.logo));
notiBuilder.setSmallIcon(R.drawable.logo);
notiBuilder.setContentTitle(context.getString(R.string.eventNitificationTitle));
notiBuilder.setContentText(obj.getString("nazwa") + " " + obj.getString("data"));
Intent eventIntenet = new Intent(context, EventActivity.class);
eventIntenet.setAction("Action_"+id);
eventIntenet.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
eventIntenet.putExtra("eventID", id);
PendingIntent pIntent = PendingIntent.getActivity(context, 0, eventIntenet, PendingIntent.FLAG_UPDATE_CURRENT);
eventIntenet = null;
notiBuilder.setContentIntent(pIntent);
pIntent = null;
NotificationManager notiManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
notiManager.notify(Integer.parseInt(id), notiBuilder.build());
} else {
notiManager.notify(Integer.parseInt(id), notiBuilder.getNotification());
}
И способ, чтобы получить мой Int:
this.eventID = getIntent().getIntExtra("eventID", -1);
Everytime, когда я нажимаю на уведомление, я двигаюсь к деятельности, но getExtra возвращает -1.
Попробуйте getIntent(). GetExtra(). GetInt («eventID») и удалите те, которые вы устанавливаете null в Intents по умолчанию, не устанавливайте его, пока не завершите уведомление. – Thilek
Спасибо за ответ. Я сделал это, но все еще не работал. У меня есть еще один вопрос: установка значения переменной в значение null, когда она мне больше не нужна, - хорошая идея? –