我的应用有两个活动,ActivityA 和 ActivityB。它们在下面的 AndroidManifest 中指定:
<activity android:name=".ActivityA" android:label="@string/app_name" android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityB"
android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden|screenSize"
android:windowSoftInputMode="stateAlwaysHidden"/>
问题的场景如下。
- 我启动应用程序并显示 ActivityA。
- 从 ActivityA,我启动 ActivityB 并关闭 ActivityA。现在任务栈只包含ActivityB。
- 我按下主页按钮,然后手机进入主屏幕。
- 我长按主页按钮,然后从历史记录中选择我的应用程序。
- 第4步之后,ActivityA启动并显示,任务栈顶部有ActivityA,底部有ActivityB。
我在第 5 步很困惑。我期望的是,应用程序将以其现有的任务堆栈被带到前台,即任务堆栈中只有 ActivityB。为什么Android在第5步启动ActivityA?
顺便说一句,客户端日志在第 5 步包含以下消息:
10-26 21:29:04.070 V/HtcAppUsageStats(275):(启动应用程序,包):(MyApp,com.example.myapp)
10-26 21:29:04.070 I/ActivityManager(275):开始活动:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x34500000 cmp=com.example.myapp /.ActivityA bnds=[0,566][540,662](有附加功能)} 来自 pid 275
感谢您的任何建议!