Android: keep task's activity stack after restart from HOME

天大地大妈咪最大 提交于 2019-11-26 14:17:34

问题


My application has two activities, that I start in this order:

HOME > A > B

Now I press HOME and launch "A" again. I would like to see activity "B" on a top of "A", but instead I get "A" - so the activity stack is cleared.

Manifest:

<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>

What should I do?


回答1:


I figured out what is wrong...

The config is right, but I started application for debugging from Eclipse, this was the issue.

Case # 1.

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

Case # 2.

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

Case # 3.

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



回答2:


We have discovered this is a known Android issue - it has been officially tracked here and here.

Despite they say (did not checked) it has been fixed in the 0.9.6 release of the ADT Eclipse plugin I still can see this on a real device during the application OTA upgrade. At least this happens for Android 1.6, 2.0.1, 2.1 and 2.2.

We've created a workaround for this issue. Check it out here.




回答3:


It's not that complex. You just need to manipulate the manifest.

AndroidManifest.xm

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

Read about the 'android:exported' & 'android:alwaysRetainTaskState' here:

android:exported

android:alwaysRetainTaskState



来源:https://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after-restart-from-home

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!