我的应用程序有两个活动,我按此顺序开始:
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>
我该怎么办?
答案 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问题 - 它已被正式跟踪here和here。
尽管他们说(没有检查)它已在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;这里: