2010-01-22 3 views
1

Я запускаю вид деятельности из своего виджета, который должен начинаться с специального вида.
Но если приложение уже работает (не осталось с кнопкой «Назад»), Android вместо этого активирует активность, которая была в последний раз показана.
Есть ли какой-либо флаг или другой способ избежать такого поведения?
Закрытие предыдущего действия не будет проблемой в моем приложении, нет никаких пользовательских данных, которые будут потеряны.
Я пробовал обходной путь with finish() в onStop(), но onStop также вызывается, когда вызывается вспомогательная активность (startActivityForResult), поэтому возврат оттуда возвращается к нулю - приложение будет закрыто.Как активировать действие, если приложение запущено?

ответ

0

Попробуйте android:clearTaskOnLaunch="true" в манифесте деятельности, содержащей «особый вид».

+0

К сожалению, это не работает. Я даже пробовал использовать разные «taskAffinity», finishOnTaskLaunch, allowTaskReparenting, FLAG_ACTIVITY_CLEAR_TOP и FLAG_ACTIVITY_RESET_TASK_IF_NEEDED. (FLAG_ACTIVITY_NEW_TASK настроен в любом случае, так как приложение может не работать.) –

1

У меня тоже была эта проблема, и я решил ее использовать, используя android:launchMode="singleInstance" в каждой декларации о работе.

0

Вызов Намерение с FLAG_ACTIVITY_NEW_TASK и на основной деятельности добавить:

андроида: launchMode = "singleTask" андроид: clearTaskOnLaunch = "истинный"

На остальных добавить:

android:finishOnTaskLaunch="true" 

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

Смежные вопросы