【发布时间】:2012-10-29 19:10:14
【问题描述】:
我的应用有两个 Activity,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。
- 我按下 Home 键,然后手机进入主屏幕。
- 我长按主页按钮,然后从历史记录中选择我的应用程序。
- 在第 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
感谢您的任何建议!
【问题讨论】:
-
也许你的应用程序崩溃了,你捕捉到异常,当它进入后台时(参见 onPause() 等)并且每次都重新创建?
-
我的应用没有崩溃。我在日志中没有看到任何异常。
-
您能否检查一下您手机的开发者选项中是否启用了“不保留活动”选项
-
我的手机没有“不保留活动”开发者选项。我手机的操作系统版本是2.3.3。
-
您是否在应用程序代码的任何地方使用了 finish() 方法? ActivityB.onPause() 方法有什么特别的作用吗?
标签: android