2013-10-03 3 views
3

Мне нужно вызвать активность с различными launchMode согласно состоянию моего приложения. В одном случае это должно быть singleInstance, в другом - singleTask. Я знаю, как установить launchMode в AndroidManifest, но так как это должно быть динамическое свойство, я должен сделать это из кода. Я подумал, что перед запуском деятельности я могу добавить определенный флаг к намерению, но я нашел только флаг singleTop. Так какой-то способ решить эту проблему? СпасибоПрограммный режим запуска активности

ответ

2

После некоторых расследований я заметил, что это невозможно сделать таким образом. Но хорошей новостью является то, что у меня есть обходное решение:

Вам нужно создать два Activities, каждый с соответствующими launchModes. Один Activity реально Activity с кодом внутри, а другой будет просто назвать основным Activity в onCreate() метод, но, так как он будет нужен launchMode, главный Activity будет запущен с этим режимом. Не очень приятное, но полностью работающее решение.

После этого, вместо того, чтобы пытаться открыть ваши Activity с намерением флагов, положить в намерении class в Activity согласно launchMode вам нужно.

0

Просто создать два вида деятельности A и B, B расширяет А. В манифесте объявляют launchMode = «singleTask» для А, а launchMode = «SingleInstance» для B. и начать деятельность в соответствии с launchMode вам нужно.

0

В моем случае мне нужно две разные launchMode, связанные с различным андроида уровня API: в AndroidManifest

android:launchMode="@integer/launchModeAPIlevel" 

и другое значение числа внутри папки значений-18, значения-21

<integer name="launchModeAPIlevel">1</integer> 

launchmode 1 == singleTop singleTask == 2