CountDownTimer 和 AlarmManager 之间是否存在重大差异?我不是指语法或如何使用它但想知道是否有这样的任务,当你可以说我应该使用其中一个而不是另一个? 简单的例子,我必须每分钟启动一次动作。我该怎么用? CountDownTimer还是AlarmManager?它取决于什么?
答案 0 :(得分:2)
AlarmManager
通常用于申请被关闭或必须execute some repeating task(s)的目的。它的精确度也略低于Timer
或Handler
。
CountDownTimer
更多地用于在持续时间(onFinish
)内运行特定任务,并定期更新,直到执行(onTick
)。
在您的具体情况下,我认为您应该使用AlarmManager
,因为它可以无限期重复。例如,如果您希望每秒执行一次10秒钟,请使用CountDownTimer
。
答案 1 :(得分:2)
CountDownTimer
CountDownTimer将在您的Activity上下文中运行。意味着它可以在任何时候被杀死,如果你的应用程序不在forground上。
AlarmManager
完全不同的方法使用Sticky Intents。一段时间后,告诉你Receiver
。它不取决于活动的生命周期。
因此,如果你想每分钟进行一些操作,即使你的应用程序不是forground,那么你应该使用AlarmManager
,否则CountDownTimer
将为你完成这项工作。
答案 2 :(得分:0)
如上所述here:
注意:警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行。对于正常的计时操作(刻度,超时等),使用Handler会更容易,也更有效。
因此,在您的情况下最好使用CountDownTimer,因为即使应用程序已关闭,您也不想执行操作。