CountDownTimer与AlarmManager

时间:2012-10-10 19:40:09

标签: android alarmmanager countdowntimer

CountDownTimer AlarmManager 之间是否存在重大差异?我不是指语法或如何使用它但想知道是否有这样的任务,当你可以说我应该使用其中一个而不是另一个? 简单的例子,我必须每分钟启动一次动作。我该怎么用? CountDownTimer还是AlarmManager?它取决于什么?

3 个答案:

答案 0 :(得分:2)

AlarmManager通常用于申请被关闭或必须execute some repeating task(s)的目的。它的精确度也略低于TimerHandler

CountDownTimer更多地用于在持续时间(onFinish)内运行特定任务,并定期更新,直到执行(onTick)。

在您的具体情况下,我认为您应该使用AlarmManager,因为它可以无限期重复。例如,如果您希望每秒执行一次10秒钟,请使用CountDownTimer

答案 1 :(得分:2)

CountDownTimer

CountDownTimer将在您的Activity上下文中运行。意味着它可以在任何时候被杀死,如果你的应用程序不在forground上。

AlarmManager

完全不同的方法使用Sticky Intents。一段时间后,告诉你Receiver。它不取决于活动的生命周期。

因此,如果你想每分钟进行一些操作,即使你的应用程序不是forground,那么你应该使用AlarmManager,否则CountDownTimer将为你完成这项工作。

答案 2 :(得分:0)

如上所述here

  

注意:警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行。对于正常的计时操作(刻度,超时等),使用Handler会更容易,也更有效。

因此,在您的情况下最好使用CountDownTimer,因为即使应用程序已关闭,您也不想执行操作。