5

CountDownTimerAlarmManager之间有什么主要区别吗?我不是指语法或如何使用它,而是想知道是否有这样的任务,当您肯定可以说我应该使用其中一个而不是另一个时?
简单的例子,我必须每分钟启动一次动作。我应该使用什么?CountDownTimer 还是 AlarmManager?怎么看?

4

3 回答 3

2

AlarmManager通常用于您的应用程序关闭或必须执行一些重复任务的目的。Timer它也比or的精度略低Handler

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

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

于 2012-10-10T19:49:08.190 回答
2

CountDownTimer

CountDownTimer 将在您的 Activity 上下文中运行。意味着它可以随时被杀死,如果您的应用程序不在前台。

AlarmManager

一种完全不同的方法使用粘性意图。并告诉你Receiver,一段时间后。它不依赖于 Activity 的生命周期。

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

于 2012-10-10T19:52:52.090 回答
0

如此处所述:

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

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

于 2012-10-10T19:46:10.983 回答