Уведомление 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 .

Другие вопросы по тегам