Если у нас есть 2 действия, A
и B
, оба определены как singleTask
в AndroidManifest.xml
, когда A
запустит B
, A будет закрыто (onDestroy()
вызывается немедленно). Почему это происходит и как избежать закрытия A
системой (несколько действий singleTask
в одном приложении)?
Режим запуска Android singleTask
Ответы (5)
"singleTask" and "singleInstance" activities can only begin a task. They are always at the root of the activity stack.
Так как в системе не может быть двух корневых активностей, то при запуске такой задачи закрываются все предыдущие активности.
Можете ли вы предоставить пример кода и манифест, демонстрирующий эту проблему? Чтобы воспроизвести его, я создал простое приложение с двумя действиями, в котором оба действия имеют launchMode="singleTask" и где Activit1 запускает Activity2. Это работает, как и ожидалось (Activity1 не уничтожается сразу). Я предполагаю, что вы делаете что-то еще либо в своем коде, либо в своем манифесте, что вызывает поведение, которое вы описываете. Пожалуйста, опубликуйте код и манифест, чтобы мы могли помочь с вашей проблемой.
У меня была такая же проблема. Я установил режим запуска для действия B как «singleInstance», это решило проблему.
Из того, что я тестировал, onDestroy не срабатывает на Android 5.1.