我有一个使用CountDownTimer
inside a的应用程序BraodcastReceiver
。CountDownTimer
可以持续 1 小时以上。计时器在通知区域显示倒计时(秒间隔)。
一些用户报告说,该应用程序似乎在长时间倒计时。CountDownTimer 由小部件触发。
有谁知道CountDownTimer
操作系统是否可以停止和回收a?
另一种方法是在运行服务的 1 秒间隔设置重复警报。有更好的选择吗?
我有一个使用CountDownTimer
inside a的应用程序BraodcastReceiver
。CountDownTimer
可以持续 1 小时以上。计时器在通知区域显示倒计时(秒间隔)。
一些用户报告说,该应用程序似乎在长时间倒计时。CountDownTimer 由小部件触发。
有谁知道CountDownTimer
操作系统是否可以停止和回收a?
另一种方法是在运行服务的 1 秒间隔设置重复警报。有更好的选择吗?
有谁知道操作系统是否可以停止和回收 CountDownTimer?
你的过程将是。
另一种方法是在运行服务的 1 秒间隔设置重复警报。
如果您的意思是“重复警报”,那在任何实际意义上都不是一种选择AlarmManager
。AlarmManager
不是为每一秒的事件而设计的。
有更好的选择吗?
这是证明前台服务合理的少数情况之一。既然你有一个Notification
反正,而且你的AlarmManager
方法无论如何都会让服务保持不变,你也可以放弃AlarmManager
和使用startForeground()
来保持服务。更新Notification
您正在使用的startForeground()
,并用于ScheduledExecutorService
在后台线程上每秒获得控制权。
倒计时完成后,调用stopForeground()
并stopSelf()
摆脱这一切。