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 上退出活动时,计时器是不是会自动禁用?

更改意图时 Android Studio 崩溃

当活动暂停时,如何正确停止倒数计时器中的媒体播放器?

[Unity计时器倒计时,当应用杀死Android时不起作用

Flowable入门系列文章32 - Activity解读 08