Android:当活动死亡时,计时器被孤立
Posted
技术标签:
【中文标题】Android:当活动死亡时,计时器被孤立【英文标题】:Android: When Activity Dies, Timer is Orphaned 【发布时间】:2012-11-29 16:06:22 【问题描述】:我是一个相对的 android 新手,正在编写一个计时器应用程序。我正在使用一个自定义倒数计时器类,它是主要活动类的成员,它产生一个处理程序以每秒运行一次。
当我关闭应用程序时,主要活动停止,但计时器继续在后台运行,如我所愿。问题是当活动重新启动时,原来的计时器现在是一个孤儿,我找不到重新附加它的方法。
保持与计时器对象的持久连接的最佳方式是什么,即使在活动重新启动之间也是如此?
【问题讨论】:
【参考方案1】:有几种不同的方法。
您可以使用系统的AlarmManager。 您可以创建自己的Service。 你可以让你的 TimerObject persist。由于我不知道您的具体要求,建议您按照上面的白兔链接自行判断。
如果您必须坚持上述模型,也许第三种模型是您的最佳选择。
即使在活动关闭的情况下,该对象实际上是否每秒做任何事情?也许保留一个引用时间戳并在退出时销毁 TimerObject/Handler (onPause
) 并在启动 Activity 时使用持久状态(如果有)创建一个新的就足够了?
【讨论】:
AlarmManager 解决方案需要重写一些代码,并且不像当前解决方案那样优雅,但这听起来正是我所需要的。非常感谢!以上是关于Android:当活动死亡时,计时器被孤立的主要内容,如果未能解决你的问题,请参考以下文章
从通知意图启动活动时重新创建 Android ViewModel
当应用程序在 iPhone 上退出活动时,计时器是不是会自动禁用?