JobScheduler API是否适用于闹钟应用程序?

时间:2016-01-25 22:16:13

标签: android

因此作业调度程序api适用于以后的任务。看起来这些任务似乎就像是在某个时间从互联网下载或者其他什么。我只是想做一个闹钟应用程序。这会过度工程吗?

以后激活和设置闹钟所需的组件是什么?我希望能够让我的应用程序设置闹钟并激活它,而不是依赖于另一个闹钟应用程序

编辑:

根据http://www.vogella.com/tutorials/AndroidTaskScheduling/article.html,似乎警报管理员已经过时,而就业调查员就是它的替代者?

2 个答案:

答案 0 :(得分:4)

这不仅仅是过度工程,JobScheduler在你的情况下也不会真正有效。

如果您想稍后安排某些任务,

JobScheduler是好的,这些任务需要一些额外的资源 - 比如网络。此外,依赖JobScheduler不适用于Lollipop之前的设备(但您可以使用Google Play服务中的GcmNetworkManager作为替代品。)

在你的情况下AlarmManager就足够了。它没有被弃用 - 只有一些通常使用AlarmManager实现的用例目前得到JobScheduler更好的支持(就像需要WIFI才能成功的重复任务)。这也是您链接的文章。

汇总:

  • AlarmManager在时间方面通常更可靠。您的代码可以按计划运行的确切时间运行。对于闹钟应用来说听起来非常重要,是吧?
  • AlarmManager对设备的状态一无所知 - 如果您希望将来执行某些任务并且依赖于有效的Internet连接,则它不是正确的选择。 JobScheduler涵盖了这一点 - 但事实并非如此。
  • JobScheduler适用于Android 5.0及更高版本(但您可以使用Google Play服务中的GcmNetworkManager作为替代品,在这种情况下,您可以放弃对不使用Google Play的设备(如亚马逊手机)的支持。
  • Android 6.0引入了Doze模式。这是一种新的电池优化机制,可以让您的设备在长时间不使用时进入睡眠状态。即使您的手机处于打盹状态,AlarmManager也可以启动您的代码。 JobScheduler没有。

答案 1 :(得分:0)

这似乎不是正确的答案。它可能会起作用,但这似乎更适合以半实时方式安排工作。您通常用于警报类型应用程序的只是AlarmManager。