在 Firebase JobDispatcher 和 AlarmManager 之间进行选择时感到困惑
Posted
技术标签:
【中文标题】在 Firebase JobDispatcher 和 AlarmManager 之间进行选择时感到困惑【英文标题】:Confused in choosing between Firebase JobDispatcher vs AlarmManager 【发布时间】:2018-06-19 18:16:44 【问题描述】:我正在创建一个类似警报的应用程序,用户可以在其中为特定日期和时间添加剩余部分,他们也可以选择重复来重复剩余部分。
剩下的我不做任何网络特定的工作。但将来我可能需要使用特定于网络的工作,但目前还不需要。
哪个更适合我的要求AlarmManager 或 Firebase JobDispatcher ?
【问题讨论】:
【参考方案1】:不要混淆。 AlarmManager API 在准确性方面存在一些重大缺陷(将任务设置为在未来的特定时间开始)。它已被谷歌接受。当您尝试使用警报管理器时,它会显示有关其不准确的警告。使用 FirebaseJobDispatcher。它的创建是为了替换 AlarmManager。当您需要将某些操作安排在其他时间(或以特定时间间隔重复)时,这就是您需要的 99% 时间
【讨论】:
似乎 FirebaseJobDispatcher 具有“Google play services”依赖项。所以我正在考虑使用evernote/android-job。我可以用这个吗?另外让我知道是否所有的android设备都安装了“Google Play Services”?如果是,那我可以选择 FJD。 我认为假设每部手机都安装了google play服务是完全可以的。从定位服务到 Google Pay 或 Google Wear,一切都需要 Google Play 服务。也许一些面向中国市场的 Android 版本可能没有使用它,但我认为大多数设备都有它。 如果您查看github.com/firebase/firebase-jobdispatcher-android/issues,我怀疑它是否已准备好生产(最新版本 0.8.5)。我从 AlarmManager 切换到 Firebase Job Dispatcher,三星手机的可靠性显着下降。 在这一点上,我认为 WorkManager 是两者的正确替代品。以上是关于在 Firebase JobDispatcher 和 AlarmManager 之间进行选择时感到困惑的主要内容,如果未能解决你的问题,请参考以下文章
在 Firebase JobDispatcher 中更改定期任务的周期?
如何在 Firebase JobDispatcher 中设置周期性任务的周期?
Firebase Jobdispatcher - 现在开始并重复