CountDownTimer和AlarmManager之间有什么主要区别吗?我不是指语法或如何使用它,而是想知道是否有这样的任务,当您肯定可以说我应该使用其中一个而不是另一个时?
简单的例子,我必须每分钟启动一次动作。我应该使用什么?CountDownTimer 还是 AlarmManager?怎么看?
3 回答
AlarmManager
通常用于您的应用程序关闭或必须执行一些重复任务的目的。Timer
它也比or的精度略低Handler
。
CountDownTimer
更多地用于在一段时间内运行特定任务(onFinish
),并定期更新直到它执行(onTick
)。
在您的具体情况下,我相信您应该使用AlarmManager
,因为它可以无限重复。例如,如果您希望每秒执行一次 10 秒,请使用CountDownTimer
.
CountDownTimer
CountDownTimer 将在您的 Activity 上下文中运行。意味着它可以随时被杀死,如果您的应用程序不在前台。
AlarmManager
一种完全不同的方法使用粘性意图。并告诉你Receiver
,一段时间后。它不依赖于 Activity 的生命周期。
因此,如果您想每分钟进行一次操作,即使您的应用程序不在前台,那么您应该使用AlarmManager
,否则CountDownTimer
将为您完成这项工作。
如此处所述:
注意:警报管理器适用于您希望应用程序代码在特定时间运行的情况,即使您的应用程序当前没有运行。对于正常的计时操作(滴答声、超时等),使用 Handler 更容易、更高效。
因此,在您的情况下,最好使用 CountDownTimer,因为即使应用程序关闭,您也不想执行此操作。