因此,作业调度程序api用于以后的任务。看起来这些任务就像是在某个特定时间从互联网上下载一样。我只想做一个闹钟应用程序。会不会是过度设计?
以后激活和设置警报需要哪些组件?我希望我的应用程序能够设置闹钟并激活它,而不是依赖于另一个闹钟应用程序
编辑:
根据http://www.vogella.com/tutorials/AndroidTaskScheduling/article.html的说法,似乎AlarmManager已经过时,而JobScheduler是它的替代品?
最佳答案
这不仅是过度的工程设计,JobScheduler
在你的情况下不会真正起作用。JobScheduler
是很好的,如果你想为以后安排一些任务,而这些任务需要一些额外的资源,如网络。此外,依赖JobScheduler
对棒棒糖前的设备也不起作用(但您可以使用google play服务中的GcmNetworkManager
作为替代)。
在你的情况下AlarmManager
就足够了。它并不是被弃用的——只是一些通常使用AlarmManager
实现的用例现在得到了JobScheduler
更好的支持(比如需要wifi才能成功的重复任务)。这也是你链接的文章所说的。
总结:AlarmManager
通常在时间上更可靠。您的代码可以按计划运行的确切时间运行。听起来像是一个非常重要的报警应用,嗯?AlarmManager
对设备的状态一无所知-如果您希望在将来执行某些任务,并且它们依赖于工作的Internet连接,则这不是一个正确的选择。jobscheduler涵盖了这一点-但这不是你的情况。JobScheduler
适用于android 5.0及更新版本(但您可以使用google play服务中的GcmNetworkManager
作为替代,在这种情况下,您将不再支持不使用google play的设备,如amazon手机)。
android 6.0引入了打瞌睡模式。这是一种新的电池优化机制,当设备长时间不使用时,它会使设备进入睡眠状态。AlarmManager
即使手机打瞌睡,也可以启动密码。JobScheduler
没有。