【问题标题】:Android restore UI state on home button pressed?Android在按下主页按钮时恢复UI状态?
【发布时间】:2015-12-24 13:15:21
【问题描述】:

我有两个活动,A 和 B。

我的应用程序从 A 转到 B。(A -> B)。

当我在 B 上并按下后退按钮(硬件后退按钮)时,A 的状态和 UI 已成功恢复(正在调用 onResume())。 问题是,当我按下主页按钮(操作栏箭头)时,前一个 Activity A 调用 onCreate(),因此它的状态和 UI 不会像按下后退按钮那样恢复。

为什么会这样?我该如何解决?

【问题讨论】:

  • 您是否在清单文件中添加了向上导航?
  • 你是怎么做到的?

标签: android android-activity activity-stack


【解决方案1】:

当您点击 ActionBar 上的向上按钮时,您似乎创建了一个新的 Activity A 实例,而不是返回到已经存在的 Activity A。

您应该覆盖在您按下按钮时调用的侦听器,并改为在 Activity B 上调用 finish()。所以行为将与按下设备的后退按钮相同。

【讨论】:

    【解决方案2】:

    http://developer.android.com/training/basics/activity-lifecycle/recreating.html

    Google 在 Developers 网站上进行了精彩的讨论。每当您离开应用程序时,您必须保存重新创建 Activity A 的最后状态所需的信息,因为系统可以在关闭后的任何时间从缓存中删除您的应用程序。因此,将重要的数据库密钥等保存到系统上的文件中,其中包含重新加载活动所需的密钥。这还将为您处理方向更改。重要的生命周期方法是用于恢复状态的 onPostResume 以及用于保存状态的 onStop 和 onDestroy。

    也阅读活动生命周期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      相关资源
      最近更新 更多