@littleFluffyKitty хорошо ... для меня в деятельности были логические точки, где я мог инициировать обновление синглтон-класса. например. конец воспроизведения медиа-файла ... реализован MediaPlayer.OnCompletionListener и обновлен мой синглтон. Не уверен, что в вашем приложении есть логические точки, которыми вы можете управлять.

ь, когда я исследовал это еще больше, я переписываю это, чтобы сделать его более понятным. Если вы ищете больше информации, есть некоторые доступные в старых редакциях.

Что случилось:

(Это относится к приложению, которое не установило никаких параметров launchMode и поэтому использует значения по умолчанию)

Вы запускаете приложение из Маркета или из Установщика. Это запускает основную / основную активность приложения с флагом FLAG_ACTIVITY_NEW_TASK и без категорий. Прямо сейчас стек приложений [A]

Затем вы переходите к следующему действию в приложении. Теперь стек в этой задаче [A> B]

Затем вы нажимаете клавишу «Домой» и затем повторно запускаете то же приложение, нажимая его значок на домашнем экране или в панели приложений.

В этот момент ожидается, что активность B покажет, поскольку именно там вы остановились. Однако отображается A, и стек задач [A> B> A]. Этот второй экземпляр A запускается со следующими флагами: FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_RESET_IF_NEEDED и FLAG_ACTIVITY_BROUGHT_TO_FRONT. Он также имеет категорию android.intent.category.LAUNCHER.

В этот момент, если вы нажмете кнопку «Назад», он вернет вас к B, как это было, когда вы оставили его.

Глядя на документацию, кажется, что FLAG_ACTIVITY_BROUGHT_TO_FRONT следует устанавливать только для действий, использующих режимы запуска singleTask или singleTop. Однако это приложение не установило никакие launchModes и поэтому использует стандартный launchMode по умолчанию.

Я полагаю, что это не должно произойти в этом случае?

Я также должен отметить, что, как только он попадает в это странное состояние, это происходит каждый раз, когда приложение запускается с домашнего экрана или из панели приложений. Если задача завершена (перезапуск телефона, принудительная остановка приложения или обратный удар по стеку), эта проблема будет устранена и больше не будет запускаться неправильно. Это происходит только в том случае, если вы запускаете приложение из установщика или из маркета, а затем пытаетесь запустить его из панели запуска.

Итак, в общем, почему это происходит? Есть ли способ предотвратить это?

Ответы на вопрос(2)

Ваш ответ на вопрос