Надеюсь, кто-нибудь может помочь мне понять, если не решение, хотя бы объяснение поведения.
Эта проблема:
На некоторых устройствах нажатие значка запуска приводит к возобновлению текущей задачи, на других - к запуску первоначального намерения запуска (фактически перезапуска приложения). Почему это происходит?
Деталь:
Когда вы нажимаете «Значок запуска», приложение запускается нормально - то есть, я полагаю, запускается Intent с именем вашего первого Activity
действия android.intent.action.MAIN
и категорией android.intent.category.LAUNCHER
. Однако это не всегда так:
На большинстве устройств, если вы нажмете значок запуска после того, как приложение уже запущено, текущее действие в этом процессе возобновится ( НЕ начальное Activity
). Он возобновляется так же, как если бы вы выбрали его из «Недавних задач» в меню ОС. Это поведение, которое я хочу на всех устройствах.
Однако на выбранных других устройствах происходит другое поведение:
На Motorola Xoom, когда вы нажимаете значок запуска, приложение всегда запускает начальный запуск
Activity
независимо от того, что в данный момент работает. Я предполагаю, что значки запуска всегда запускают намерение «ЗАПУСК».На вкладке Samsung 2, когда вы нажимаете значок программы запуска, если вы только что установили приложение, оно всегда запускает исходное
Activity
(то же, что и Xoom) - однако после перезагрузки устройства после установки значок программы запуска вместо возобновить приложение. Я предполагаю, что эти устройства добавляют «установленные приложения» в таблицу поиска при запуске устройства, что позволяет значкам панели запуска правильно возобновлять выполнение задач?
Я прочитал много ответа , что звук похож на мою проблему , а просто добавление android:alwaysRetainTaskState="true"
или использования launchMode="singleTop"
в Activity
не ответ.
Редактировать:
После последнего запуска этого приложения мы обнаруживаем, что такое поведение стало проявляться на всех устройствах после первого перезапуска. Это кажется мне безумным, но, просматривая процесс перезапуска, я не могу понять, что происходит не так.
finish()
их в тех случаях, когда она начинает сначала, Activity
а не возобновляет их.