gpt4 book ai didi

Android Chronometer,保留时间状态(并在后台继续计数)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:07 27 4
gpt4 key购买 nike

我有一个计时器,从用户遇到该 Activity 时开始计时

我目前正在使用 onCreate 期间设置的 Chronometer(最初仅在满足某些条件时才启动)。但我需要计时器继续向上计数,直到应用程序及其所有 View 都关闭(我有一个“退出”功能来执行此操作)。

问题是每次我查看另一个选项卡并返回其 Activity 时,Chronometer 都会重置为零。 (这个和oncreate有关,不知道怎么解决)

我没有找到一种直观的方法来自行在后台保存计时器的状态或计数(或者我自己跟踪时间并在不同的时间点直观地更新计时器)

我的一个想法是用一个服务启动 Chronometer 并让该服务继续计数,同时在现有 Activity 更新中使用一个 textview 将计时器的当前时间记数作为一个字符串

对解决此问题的已知方法的任何见解都将不胜感激!

这更加复杂,因为这是一个 tabhost 中的 Activity ,并且每次加载 View 时 tabhosts 都会调用 onPause 和 onResume,因此这会破坏生命周期功能。

最佳答案

有很多方法可以保持时间。我发现最简单的方法是将时间存储在用于通过 getIntent().putExtra("START_TIME", floatvalue) 创建原始 Activity 的 Intent 中。您可以使用 getIntent().getFloatExtra("START_TIME", 0f) 检索该值。这样做有很多好处:

  • 它不会破坏 Activity 生命周期,也不需要上下文。
  • 它可以在其他 Activity 和 Applicaitons 之间轻松传递。
  • 它在暂停和停止之间持续存在。
  • 它不需要特殊的听众。
  • 它不会创建任何新对象(Intent 是第一次用于创建 Activity 的对象)。

此解决方案非常适合在选项卡式 Activity 中或跨对话框等持久化。如果将应用程序留给内存密集型应用程序,它会有一些限制,但前提是您的 Activity 被销毁(由于内存)。

关于Android Chronometer,保留时间状态(并在后台继续计数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com