2012-02-20 2 views
4

В моем приложении есть поведение, которое я не понимаю. У меня есть MainActivity A, как SingleTask. Он называет Activity B то есть SingleTask тоже. Когда я нажимаю кнопку Home во втором действии, чтобы открыть другое приложение, и после этого я пытаюсь перейти к моему приложению, нажимаю кнопку Home, я всегда перехожу к Главному Activity, и я хочу открыть вторую активность, поддерживая состояние, которое когда я нажимаю кнопку Home.Android SingleTask, SingleTop и кнопка Home

Я попытался установить затем вторую активность на singleTop, и это не сработает.

Любая помощь?

+0

use singleTop для вашей второй активности, отражает то же поведение, что и singleTask, но в том же стеке. –

ответ

4

Поведение активности обратно стек становится бросить странно, когда определяет основную деятельность с singleTask в то же время:

<activity android:name=".MainActivity" 
    android:launchMode="singleTask"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Что еще хуже, нет четкого объяснения в официальном руководстве Dev в отношении к этому специальному назначению дело. Некоторые разделы, относящиеся к этой теме, даже противоречат друг другу.

Попробуйте использовать launchMode = "standard" на MainActivity A и launchMode="singleTask" на вашем Activity B, что даст вам описание ожидаемого поведения.

+0

Это только что произошло со мной, и ваше объяснение помогло мне разобраться в этом. Для меня мне пришлось сделать как «задачу вызывающего абонента», так и целевую задачу, у которых есть только однозадачное или однократное. Как только я это сделал, это сработало. Это объясняется в dev-документах, но таким образом, что было бы трудно поймать даже для крупных компьютерных наук –