Android: сохранить стек задач после перезапуска из HOME - PullRequest
9 голосов
/ 14 января 2010

У моего приложения есть два действия, которые я запускаю в следующем порядке:

HOME > A > B

Теперь я нажимаю ДОМОЙ и снова запускаю «А».Я хотел бы видеть действие "B" на вершине "A", но вместо этого я получаю "A" - поэтому стек активности очищается.

Манифест:

<activity android:name=".activity.A" android:label="A" android:alwaysRetainTaskState="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name=".activity.B" android:label="B">
    <intent-filter>
    </intent-filter>
</activity>

Чтоя должен сделать?

Ответы [ 3 ]

10 голосов
/ 14 января 2010

Я понял, что не так ...

Конфигурация верна, но я запустил приложение для отладки из Eclipse, это была проблема.

Дело № 1.

Debug > A > B > HOME > A
Get: A (stack is cleared)

Дело № 2.

Debug > A > BACK > A > B > HOME > A
Get: B (stack preserved)

Дело № 3.

A > B > HOME > A
Get: B (stack preserved)
2 голосов
/ 18 ноября 2010

Мы обнаружили, что это известная проблема Android - она ​​официально отслеживается здесь и здесь .

Несмотря на то, что они говорят (не проверял), это было исправлено в выпуске 0.9.6 плагина ADT Eclipse, но я все еще вижу это на реальном устройстве во время обновления OTA приложения. По крайней мере, это происходит для Android 1.6, 2.0.1, 2.1 и 2.2.

Мы создали обходной путь для этой проблемы. Проверьте это здесь .

1 голос
/ 20 августа 2016

Это не так сложно. Вам просто нужно манипулировать манифестом.

AndroidManifest.xm

<activity
     android:name=".MainActivity"
     android:alwaysRetainTaskState="true"
     android:exported="true"
     .
     .
     .

Прочтите об 'android: exported' & 'android: alwaysRetainTaskState' здесь:

андроид: экспортироваться

андроид: alwaysRetainTaskState

...