【发布时间】:2010-02-25 11:47:21
【问题描述】:
做了一段时间我发现有几个选择:
- 使用报警管理器
- 使用 ScheduledExecutorService
- 使用Handler的方法postDelayed
这一切有什么大的不同?制定计划行动的最佳做法是什么?
【问题讨论】:
-
这说明了一个很好的澄清stackoverflow.com/a/6558821/1016544
标签: android
做了一段时间我发现有几个选择:
这一切有什么大的不同?制定计划行动的最佳做法是什么?
【问题讨论】:
标签: android
AlarmManager 是全局“定时器”,这个人可以唤醒你的应用程序,即使它没有启动。沉重的家伙。ScheduledExecutorService:标准的 Java 方式来做一些计划的事情,用在 JSE 中,对 Java 开发人员来说简单而熟悉。该作业将在与调度此作业的 UI 或线程不同的线程中执行。非常适合不处理 UI 和处理冗长繁重内容的服务。Handler:Android 调度作业的方式,作业在 UI 线程中执行(如果处理程序是在 UI 中创建的),所以它不能进行非常繁重的处理,否则它只会冻结你的 UI。【讨论】:
AlarmManager 独立于您的应用程序,并保证任务将运行。
另外两个作为Activity/Service 的一部分运行,具有相应的生命周期限制(例如,可以随时终止)。
【讨论】: