Android - Уведомления PendingIntent идет неправильно Деятельность? - PullRequest
2 голосов
/ 24 ноября 2011

В настоящее время у меня есть уведомление, которое отображается в панели уведомлений, и когда пользователь щелкает по нему, оно должно приводить их в корневую папку Активность моего приложения.

Я использовал android: finishOnTaskLaunch = "true" & android: clearTaskOnLaunch = "true" в моем манифесте, чтобы добиться этого, когда пользователь нажимает значок приложения на экране приложений или на домашнем экране.Пользователь всегда перенаправляется в корневую активность, как и ожидалось.

Однако, когда я использую следующий код из моего уведомления, пользователь перенаправляется на последний экран, на котором он находился, а не на корневую активность, которая называется StartActivity.

Кто-нибудь знает, что я делаю не так?

   Intent notificationIntent = new Intent(this, StartActivity.class);
   contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
   notification.setLatestEventInfo(getApplicationContext(), getString(R.string.notification_app_name), notificationText, contentIntent);
   mNotificationManager.notify(1, notification);

Добавление этих флагов помогает, однако после перезапуска все равно не работает:

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

При перезапуске приложения я запускаю службу, которая выдает уведомление, и когдаЯ делаю это, уведомление возвращается к старому нежелательному поведению.

решено:

решена проблема путем добавления этого флага в contentIntent моего уведомления - Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.

Вот ссылка с некоторой отличной информацией по области Группа разработчиков Google

1 Ответ

3 голосов
/ 24 ноября 2011

Попробуйте это 2 свойства

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
...