Android Notification Intent.putExtra

88
4

У меня есть уведомление о том, что при нажатии должно запускаться действие, которое, в свою очередь, запускает диалоговое окно. Это все работает, но диалоговое окно выводит информацию из уведомления, напомнив Intent.putExtra(). Проблема в том, что он всегда извлекает последнюю информацию из putExtra, поэтому, если пользователь нажимает на новое уведомление, он получает информацию от более старой. Есть ли способ диктовать, куда putExtra идет, с каким уведомлением?


Вот код, который я использую:
ID - это int, а UserText - строка:


Intent notificationIntent = new Intent(this, DialogActivity.class);
notificationIntent.putExtra("Text", UserText).putExtra("NotifyID", ID);

И в диалоговом окне


Bundle extras = getIntent().getExtras();
String test;
int NID;
if (extras != null) {
test = extras.getString("Text");
NID = extras.getInt("NotifyID");
}

Проблема заключается в том, что они всегда являются "Text" и "NotifyID" из первого уведомления независимо от того, какое уведомление пользователь выбирает.

спросил(а) 2021-01-25T17:18:30+03:00 4 месяца, 2 недели назад
1
Решение
88

Используйте removeExtra. В вашем случае:

Bundle extras = getIntent().getExtras();
String test;
int NID;
if (extras != null) {
test = extras.getString("Text");
NID = extras.getInt("NotifyID");
getIntent().removeExtra("Text");
getIntent().removeExtra("NotifyID");
}

ответил(а) 2021-01-25T17:18:30+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема