【问题标题】:Firebase JobDispatcher: is there a Driver that does not require Google Play services?Firebase JobDispatcher:是否有不需要 Google Play 服务的驱动程序?
【发布时间】:2017-01-18 16:24:44
【问题描述】:

Firebase JobDispatcher 使用Driver 接口,requires Google Play services 工作:

Driver 是一个接口,表示可以调度、取消和执行作业的组件。唯一捆绑的驱动程序是 GooglePlayDriver,它依赖于 Google Play 服务内置的调度程序。

有没有不需要 Google Play 服务的 Firebase JobDispatcher Driver 的方便示例?

【问题讨论】:

  • 我已经不是最后一次看了。在 jobdispatcher "implements Driver" 上进行 Google 搜索,除了 GooglePlayDriver 之外什么都没有。
  • 好的,谢谢@CommonsWare。在您看来,创建这样一个Driver 是不是胆小的人不能尝试?除了希望尽可能避免依赖 Play 服务之外,调查此问题的另一个原因是,我发现您似乎无法控制(在需要时)作业运行前的延迟(来自所有约束条件)令人沮丧见)——请参阅我在stackoverflow.com/questions/39363839/… 的帖子——自定义Driver 可能会启用这种更精细的控制?也可能不是。
  • 好吧,JobDispatcher 只是委托给驱动程序。当兼容的Driver 使用JobScheduler 时,名为JobDispatcher 的东西并不能克服限制,而不是你自己使用JobSchedulerJobDispatcher,就像 Evernote 的 android-job 库一样,主要用于单个 API,基于 API 级别以及是否是 Play 生态系统设备具有不同的实现。现在,使用 Play Services 中的 GcmNetworkManagerJobDispatcher 可以满足您的需求吗?可能以 Play Services 依赖为代价。

标签: android firebase firebase-job-dispatcher


【解决方案1】:

Firebase JobDispatcher 的调度组件依赖于 Google Play 服务,因此不可能在 100% 的 Android 设备上使用它,事实上许多开发人员放弃了使用这个库,因为它排除了所有的正确结果具有旧版 Google Play 或具有自定义 rom(如 LineageOS)的设备,默认情况下不支持此系统。

正如firebase github repository 自述文件所说,有 2 种替代方案可以在没有 Google Play 的情况下运行

您可以在表格中看到,唯一使用 JobScheduler API 的库是内置 JobScheduler 和 firebase JobDispatcher

不过,支持较低 API 级别且成功率最高的是 evernote 的 android-job,在我看来,开始使用它而不是 Firebase JobDispatcher 是值得的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 2013-03-16
    • 1970-01-01
    相关资源
    最近更新 更多