目前,在Android中,要根据时间或任何其他因素(如充电状态,网络状态等)定期执行任务,基本的三个选项是: Android AlarmManager (定期运行)基于时间), GCMTaskService (需要在设备上使用Google Play服务)和 JobScheduler (需要Android版本> 21)。最近,我遇到了这两个用于安排工作的库,一个来自Firebase,另一个来自Evernote。
我的主要问题是:这两个图书馆如何比较?他们的优点和缺点是什么?
我想建立一个应用程序,提醒用户在一段时间后定期服用药物。
我的第二个问题是:简单的AlarmManager是否足够用于此目的,或者我应该选择这两个库中的任何一个?
感谢。
答案 0 :(得分:8)
这两个图书馆如何比较?他们的优点和缺点是什么?
Firebase JobDispatcher github page中有一个很好的比较表:
关键区别在于Google Play服务的存在:Firebase需要设备才能安装它,而Evernote则独立于Play服务。
我想构建一个应用程序,提醒用户在一段时间后定期服用药物。简单的AlarmManager是否足以满足这个目的,或者我应该选择这两个库中的任何一个?
经验法则是,你很可能不会需要AlarmManager
,因为它是一个电池滤水器。作业调度员的一个关键特征是他们将作业结合起来并在一个窗口中执行,因此设备不会经常醒来。
你最好坚持工作调度员,除非服用药物应该有准确的时间,如警报(例如,你想通知用户在3小时内完全服药)。