Уведомление Android запускает ту же активность дважды
Когда я нажимаю на уведомление в строке состояния, запускается действие, но поведение странное. Если мое приложение находится на переднем плане, и я щелкаю уведомление, намерение уведомления запускается один раз. Если мое приложение работает в фоновом режиме, тогда уведомление о срабатывании запускается дважды. Если я выхожу из приложения (т. Е. Все действия прекращаются нажатием кнопки "Назад"), тогда уведомление о срабатывании запускается один раз. Может кто-нибудь объяснить это поведение. Фрагмент кода выглядит следующим образом:
_notification = new Notification(icon_id, "Ticker Text", System.currentTimeMillis());
_showActivityIntent = new Intent();
_showActivityIntent.setAction(MyActivityName);
_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + Intent.FLAG_ACTIVITY_NO_HISTORY);
_showActivityPendingIntent = PendingIntent.getActivity(context, 0, _showActivityIntent, 0);
_notification.setLatestEventInfo(context, "My title", "My text", _showActivityPendingIntent);
_notificationMgr.notify(notificationId, _notification);
2 ответа
_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Попробуй это. это предотвратит множественные случаи одной и той же активности. Вы можете положить это в манифесте также
Ни один из флагов не работал:
Intent().apply {
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
...
Вам необходимо добавить в манифест для этого действия:
android:launchMode="singleTask"
android:taskAffinity=""
android:excludeFromRecents="true"
Проверьте: https://developer.android.com/develop/ui/views/notifications/navigation .