【问题标题】:How to keep the activity state intact on back press in android?如何在android中保持活动状态完好无损?
【发布时间】:2013-01-04 09:50:59
【问题描述】:

我是 Android 新手。根据制作活动启动模式 singleTop 的 Android 开发人员文档,它将保持该活动完整。但它对我不起作用。我有一个活动,我有一个倒数计时器,我想要的是当我离开那个活动并返回到那个倒数计时器应该仍在运行的活动时。怎么做 ?请帮忙

【问题讨论】:

  • 创建一个应该不断更新 UI 的服务。
  • 创建服务将始终保持该计时器运行,相反我希望它仅在应用程序处于活动状态时保持运行
  • 使用Service类,参考android文档,当countdowntimer值变为0时可以停止服务
  • 您可以在应用程序结束时停止服务。
  • 问题与 iOS 不同,没有真正“简单”的方法来查看应用程序是否打开/运行,而无需一些黑客检查状态。

标签: android countdowntimer activity-state


【解决方案1】:

我相信你误解了一点。

singleTop 中启动一个活动并不意味着该活动是“完整的”,这意味着如果目标任务在其堆栈顶部已经有一个活动的现有实例,则该实例将接收新的意图- 不会创建新实例。 (这与在standard 模式下启动活动相反,每次有新意图时,都会创建一个新的类实例来响应该意图。)

正如其他人建议的那样,您可以绑定到服务并从那里更新倒计时时间。

【讨论】:

    【解决方案2】:

    “创建服务将始终保持该计时器运行,而不是我希望它仅在应用程序处于活动状态时保持运行”,这意味着您希望从用户离开的地方继续计时器。
    将计时器值存储在 SharedPreferences onStop() 并检索相同的 onRestart() 然后最后继续更新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      相关资源
      最近更新 更多