Android:从HOME重启后保留任务的活动堆栈

时间:2010-01-13 23:36:29

标签: android activity-stack

我的应用程序有两个活动,我按此顺序开始:

HOME > A > B

现在我按HOME并再次启动“A”。我想在“A”的顶部看到活动“B”,但我得到“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 个答案:

答案 0 :(得分:10)

我弄清楚出了什么问题......

配置是正确的,但是我开始从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)

答案 1 :(得分:2)

我们发现这是一个已知的Android问题 - 它已被正式跟踪herehere

尽管他们说(没有检查)它已在ADT Eclipse插件的0.9.6版本中得到修复,我仍然可以在应用程序OTA升级期间在真实设备上看到这一点。至少在Android 1.6,2.0.1,2.1和2.2中会出现这种情况。

我们已针对此问题创建了一种解决方法。请查看here

答案 2 :(得分:1)

它并不复杂。你只需要操纵清单。

AndroidManifest.xm

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

了解&#39; android:exported&#39; &安培; &#39;安卓alwaysRetainTaskState&#39;这里:

android:exported

android:alwaysRetainTaskState