根据 Android 文档:
http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
“当用户通过按下 Home 按钮离开任务时,当前活动停止,其任务进入后台。系统保留任务中每个活动的状态。如果用户稍后通过选择启动器图标恢复任务开始任务后,任务进入前台并恢复堆栈顶部的活动。”
如果我理解正确,这意味着:
- 活动 A 作为主要活动。
- 通过“startActivity”在 A 中启动的活动 B - 常见的、普通的意图实例。
- 我第一次打开应用程序,A 被加载。
- 我点击A中的按钮,B是openend。
- 我按主页按钮。
- 我第二次再次打开应用程序,预计会显示 B
...正确的?我想这是期望的正确行为......
但是,我在我的应用程序中没有看到这一点。
如果我点击“主页按钮”然后通过按下启动器图标恢复我的应用程序,它将从主要活动开始 - 而不是顶部的活动或最新的活动。
我在三星 Galaxy Tab Android 2.2.1 上进行编码 - 我在 Android 清单中有最常见的选项 - 事情是我处理 10 个不同的活动,具有不同的意图额外内容 - 以及 Dispatcher 类方法 - 或保存每个活动状态 -听起来要求很高。
我正在使用带有 ADT 版本 12 的 Eclipse IDE;我发现了一些非常有趣的东西:
当我从 Eclipse IDE 运行应用程序并连接我的设备时,我看不到这种行为。该应用程序的行为如文档中所述。事实上,我是在将我的 apk 部署到 Google Play 应用程序存储库后才看到这一点的;并下载它进行测试。
我的问题是,有没有人找到发生这种情况的真正原因?文档有错吗?还是遗漏了什么?这是Android上的错误吗?
我做过的另一项研究是:
当我尝试从谷歌播放下载的应用程序作为 APK 时,如果我第二次进入我的应用程序,我会得到“主要”活动而不是最后一个 openend。我按回家。按主页后,我进入android的应用程序管理设置,找到我的应用程序并单击“强制停止”。执行此操作后,应用程序的行为如文档中所述。
有人帮忙!:)