2013-07-23 5 views
2

У меня есть активность в моем приложении, которое можно открыть, благодаря уведомлению. Но содержание деятельности зависит от вида уведомления. Например: Если я получаю «уведомление», приложение запускает действие, и на этом отображается «полученное». Затем, если я получаю уведомление «b», приложение снова запускает действие и отображает «b получено». Проблема заключается в том, что когда действие уже было запущено один раз, когда уведомление «b» возобновляет его снова, активность все еще отображает «полученное». Как я могу заставить деятельность заново создать в зависимости от получаемого намерения?Принудительное возобновление активности Android

Я пробовал намерение.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); но это не работает.

Спасибо!

EDIT: После некоторых исследований я выяснил, что проблема с ожиданием была проблемой. Похоже, что намерение, переданное как параметр в PendingIntent.getActivity(ctx, 0, intent, 0), не обновлялось. Я только что добавил

intent.setAction(Long.toString(System.currentTimeMillis())); 

и все работало как шарм.

+0

Вы ничего не получаете в 'onNewIntent()', который вы можете использовать? Сколько экземпляров вашей «Деятельности» у вас есть? – gunar

+0

Не знаю, сколько, это зависит от полученных уведомлений. –

+0

Приведенные ниже ответы могут помочь вам: http://stackoverflow.com/a/3974828/1534762 http://stackoverflow.com/a/3419987/1534762 – Chandru

ответ

0

Завершить любую существующую деятельность в обработчике уведомлений «A» или «B» перед началом действия.

0

call finish(), когда вы хотите перезапустить приложение, а затем переопределить onDestroy() и выполнить следующее.

@override 
public void onDestroy() 
{ 
    startActivity(new Intent(this,ThisDyingAcitivity.class)); 
} 
Смежные вопросы