Намеренные дополнения не удалены / заменены

#android #android-intent

#Android #android-intent

Вопрос:

Я устанавливаю будильник при нажатии кнопки.

Тревога срабатывает с намерением.

Это намерение получает дополнительный «int» для передачи широковещательному приемнику.

Проблема в том, что дополнительные функции intent устанавливаются один раз при первом нажатии кнопки и никогда не меняются при других нажатиях:

 Intent intent = new Intent(A.this, B.class);
intent.putExtra(WAKEUP_DURATION, wakeUpDuration);
PendingIntent sender = PendingIntent.getBroadcast(A.this, 0, intent, 0);
  

Я попытался удалить его в широковещательном приемнике, но безуспешно:

 intent.removeExtra(A.WAKEUP_DURATION);
  

Ответ №1:

Используйте FLAG_UPDATE_CURRENT при создании вашего PendingIntent , чтобы обновить дополнения с нового Intent .

Ответ №2:

Спасибо! Это сделало свое дело. Для тех из вас, кто хотел бы знать точный ответ. «FLAG_UPDATE_CURRENT» используется в качестве четвертого аргумента в методе ‘getBroadcast’. Это должно выглядеть так:

 PendingIntent sender = PendingIntent.getBroadcast(A.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);