Режим запуска Android singleTask

Если у нас есть 2 действия, A и B, оба определены как singleTask в AndroidManifest.xml, когда A запустит B, A будет закрыто (onDestroy() вызывается немедленно). Почему это происходит и как избежать закрытия A системой (несколько действий singleTask в одном приложении)?


person Cristi    schedule 29.01.2011    source источник


Ответы (5)


Из документации:

"singleTask" and "singleInstance" activities can only begin a task. They are always at the root of the activity stack.

Так как в системе не может быть двух корневых активностей, то при запуске такой задачи закрываются все предыдущие активности.

person Juozas Kontvainis    schedule 30.12.2011

Можете ли вы предоставить пример кода и манифест, демонстрирующий эту проблему? Чтобы воспроизвести его, я создал простое приложение с двумя действиями, в котором оба действия имеют launchMode="singleTask" и где Activit1 запускает Activity2. Это работает, как и ожидалось (Activity1 не уничтожается сразу). Я предполагаю, что вы делаете что-то еще либо в своем коде, либо в своем манифесте, что вызывает поведение, которое вы описываете. Пожалуйста, опубликуйте код и манифест, чтобы мы могли помочь с вашей проблемой.

person David Wasser    schedule 25.05.2011


У меня была такая же проблема. Я установил режим запуска для действия B как «singleInstance», это решило проблему.

person hasanghaforian    schedule 28.03.2012

Из того, что я тестировал, onDestroy не срабатывает на Android 5.1.

person AndroidGecko    schedule 08.06.2015