У меня есть сигнальная вещь, продолжающаяся в моем приложении, и оно запускает уведомление, которое затем при нажатии запустило действие. Проблема состоит в том, что, когда я создаю больше чем одно предупреждение затем, действие, запущенное из уведомления, получает те же отдельно оплачиваемые предметы как первый. Я думаю, что проблема или с намерением, я вставил незаконченное намерение или в самом незаконченном намерении. Я думаю, что, возможно, должен был бы поместить флаг на один из них, но я не знаю который.
Intent showIntent =new Intent(context, notificationreceiver.class);
showIntent.putExtra("details", alarmname);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
showIntent, 0);
notification.setLatestEventInfo(context, "The event is imminent",
alarmname, contentIntent);
И получатель уведомления
Bundle b = getIntent().getExtras();
String eventname = b.getString("details");
details.setText(eventname);
Дополнительные "детали" являются тем же к каждому в следующий раз, когда уведомление происходит вместо того, чтобы иметь другое значение. Пока я не установил намерения, я уверен, что правильное значение переходит к "деталям", таким образом, это - проблема получения первого намерения каждый раз, я нажимаю любое уведомление. Как я могу добраться, запускают корректные намерения? Надежда я был так ясен, как я мог Спасибо!
Проблема в том, что когда я создаю больше чем один будильник, то активность запускается из уведомления получает те же дополнения, что и у первого.
Верно.
Как заставить его запустить правильные намерения?
Это зависит от того, есть ли у вас два будильника, которые будут зарегистрированы одновременно, или нет.
Если нет, вы можете использовать FLAG_ONE_SHOT
или один из других PendingIntent
флагов , чтобы ваш второй PendingIntent
использовал новые дополнительные функции. .
Если, однако, у вас будут зарегистрированы сразу два сигнала тревоги с разными Intent
extras, вам нужно будет сделать два Intents
более существенными различиями, так что filterEquals ()
возвращает false
при сравнении двух. Например, вы можете вызвать setData ()
или setAction ()
и указать разные значения для каждого Intent
.