使用警报管理器与 ScheduledExecutorService 调度相同任务有什么区别

What is the difference between scheduling same task using alarm manager vs ScheduledExecutorService

您好,我在网上看到我们可以使用闹钟管理器和 ScheduledExecutorService.

以一定的时间间隔安排我们想要 运行 的任何事情

我想知道它们有什么区别,什么时候用什么

提前致谢。

ScheduledExecutorService 过程中的东西。如果您的进程由于其他原因已经存在,例如它正在提供前台 UI,并且您想使用 ScheduledExecutorService 进行定期工作,那很好。但是,一旦您的应用移至后台,其进程可能会随时消失,并带走您的 ScheduledExecutorService,并且您将不再定期获得控制权。

AlarmManager 过程之外的东西。如果您正在寻找 Windows' "Scheduled Tasks" 或 OS X/Linux cron[=26= 的 Android 等价物] 工作,这就是 AlarmManager(或 Android 5.0+ 上的 JobScheduler)的用途。这些适用于您需要在后台定期 运行 应用程序代码但很高兴允许您的进程可能在这些期间终止的情况。