我有两个活动,A 和 B。
我的应用程序从 A 转到 B。(A -> B)。
当我在 B 上并按下后退按钮(硬件后退按钮)时,A 的状态和 UI 已成功恢复(正在调用 onResume())。问题是,当我按下主页按钮(操作栏箭头)时,前一个 Activity A 调用 onCreate() 所以它的状态和 UI 不会像按下后退按钮那样恢复。
为什么会这样?我该如何解决?
我有两个活动,A 和 B。
我的应用程序从 A 转到 B。(A -> B)。
当我在 B 上并按下后退按钮(硬件后退按钮)时,A 的状态和 UI 已成功恢复(正在调用 onResume())。问题是,当我按下主页按钮(操作栏箭头)时,前一个 Activity A 调用 onCreate() 所以它的状态和 UI 不会像按下后退按钮那样恢复。
为什么会这样?我该如何解决?
http://developer.android.com/training/basics/activity-lifecycle/recreating.html
谷歌在开发者网站上有一个很好的讨论。每当您离开应用程序时,您必须保存重新创建活动 A 的最后状态所需的信息,因为系统可以在关闭后的任何时间从缓存中删除您的应用程序。因此,将重要的数据库密钥等保存到系统上的文件中,其中包含重新加载活动所需的密钥。这还将为您处理方向更改。重要的生命周期方法是用于恢复状态的 onPostResume 以及用于保存状态的 onStop 和 onDestroy。
也阅读有关活动生命周期的信息。
当您点击 ActionBar 上的向上按钮时,您似乎创建了一个新的 Activity A 实例,而不是返回到已经存在的 Activity A。
您应该覆盖当您按下按钮并调用finish()
Activity B 时调用的侦听器。所以行为将与按下设备的后退按钮相同。