2012-02-18 5 views
3

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

Вот код, я использую: ID является INT и UserText является строка:

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

И в DialogActivity

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

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

ответ

3

Использование 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"); 
} 
+0

Спасибо, что заставило все это работать. – Ben

+0

Это не сработало для меня ... У меня точно такая же проблема. Есть ли другое решение? – Alexis

+0

@ jafar, разместите свой вопрос с помощью своего кода. Я посмотрю –

Смежные вопросы