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