9

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

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>

我应该怎么办?

4

3 回答 3

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)
于 2010-01-14T00:43:13.663 回答
2

我们发现这是一个已知的 Android 问题 - 它已在此处此处得到正式跟踪。

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

我们已经为这个问题创建了一个解决方法。在这里查看。

于 2010-11-18T19:02:54.413 回答
1

没那么复杂。您只需要操作清单。

AndroidManifest.xm

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

在此处阅读有关“android:exported”和“android:alwaysRetainTaskState”的信息:

安卓:导出

android:alwaysRetainTaskState

于 2016-08-20T12:16:20.647 回答