问题标签 [firebase-job-dispatcher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Firebase JobDispatcher - 与以前的 API(JobScheduler 和 GcmTaskService)相比,它是如何工作的?
背景
Google 有多种作业/任务调度解决方案,例如JobScheduler
和GcmTaskService
. 每个都有自己的优点和缺点。
最近,谷歌推出了一个名为“Firebase JobDispatcher”的新库。
问题
遗憾的是,关于这个新 API 的内容很少。事实上,很难找到任何关于它的东西。
我唯一找到的是他们的公告视频和一个样本。但即使是他们,也没有太多关于这个 API 的知识。
问题
查看我之前与其他 API 的问题、调查和比较(例如,此处),我想问一下新 API 的工作原理以及使用它时要考虑的事项:
作业是否可以有参数保留,甚至可以在需要时进行修改?他们在示例中说“用户提供的附加功能的可选捆绑包。默认为空捆绑包。 ”是这样吗?它可以在执行时被作业修改吗?
可以轻松地重新安排工作吗?据说“一个布尔值,指示作业是否应该重复”。如何选择何时重新安排?我已经尝试了该示例,并选择了“重复”,但它似乎没有再次运行,只有一次。
与图书馆的工作相比,它可以受到保护吗(因为唯一的 ID)?
更新应用程序时是否需要格外小心(就像以前的 API 一样)?应用程序更新后仍可以安排工作吗?对样本进行测试,似乎在更新应用程序后工作完全消失了。可以避免吗?
RECEIVE_BOOT_COMPLETED
如果我希望即使在设备重新启动时仍能安排作业,是否需要它?样品似乎有它。是否可以获得所有计划作业及其信息(包括参数)的列表,并能够取消特定/全部甚至修改它们?
应用清数据操作后作业会被删除吗?
是否可以告诉作业最好在某个时间范围内运行(例如:早上 7:00 到 8:00 之间)?提到了“ ExecutionWindowTrigger-它指定了应执行Job的时间窗口”。是这样吗?当它错过这个窗口时会发生什么?
onStartJob
类中的方法JobService
返回一个布尔值,它的描述是“是否还有更多的工作剩余”。这是什么意思?needsReschedule
方法的参数是什么jobFinished
意思?它们相互关联吗?有什么我应该知道的限制吗?例如每个函数的最小值和最大值?
android - android JobScheduler 可以替代 RxJava 吗?
这是使用rxjava
(and retrofit
) 的典型网络调用。可以JobScheduler
用这个代替吗?如果是,如何?最重要的是,是否推荐?
android - 如何使用 FirebaseJobDispatcher
我正在尝试按照这个来使用 FirebaseJobDispatcher
但我的问题是,如何为调度程序对象设置时间间隔,如 GCMNetworkManager (setPeriod)。或者请解释 FirebaseJobDispatcher 的工作原理。
android - Firebase JobDispatcher 是否使用 JobScheduler?
由于我的应用程序必须可用于 Android 4.x 版本,因此我不能仅依赖 JobScheduler 进行后台活动。Firebase JobDispatcher 向后兼容我需要的版本,所以我对其进行了一些测试。
我的期望是,它在 Android <5 时使用 Google Play 服务,在 5+ 时使用 JobScheduler API,正如在 Google I/O 2016 上的Android 电池和内存优化谈话的这张幻灯片中所见。
我使用 JobDispatcher 在自己的应用程序中安排的作业和 Firebase JobDispatcher 附带的 testapp 可以正常工作。打电话时我看不到任何活动adb shell dumpsys jobscheduler
。当我直接使用 JobScheduler 时,我可以毫无问题地看到那里的作业。
所以我猜我上面链接的幻灯片是错误的?在 Android 5+ 上是否可以让 JobDispatcher 使用 JobScheduler?也许使用自定义驱动程序?
android - Firebase JobDispatcher:是否有不需要 Google Play 服务的驱动程序?
Firebase JobDispatcher使用需要 Google Play 服务才能工作的Driver
接口:
Driver
是一个接口,表示可以调度、取消和执行作业的组件。唯一捆绑的驱动程序是GooglePlayDriver
,它依赖于 Google Play 服务内置的调度程序。
有Driver
不需要 Google Play 服务的 Firebase JobDispatcher 的方便示例吗?
android - Firebase JobDispatcher 是否使用 API 级别 21 以上的 JobScheduler?
我已经阅读了Firebase JobDispatcher
使用JobScheduler
可用的地方(即从 API 级别 21 及更高级别)的建议,否则使用它自己的方法(基于 Google Play 服务)。
例如,此处的 Google 信息说明如下:
Firebase JobDispatcher 用作针对低于 5.0(API 级别 21)的 Android 版本的应用的 JobScheduler 兼容性层。
但是我发现,对于一个特定的用户,我的应用程序中的一项工作在Android 6.0 设备上通过Firebase JobDispatcher
但不是通过启动时可以正常工作。JobScheduler
所以我想我会挖掘Firebase JobDispatcher
代码,看看我能找到什么。但是我在库中找不到任何对JobScheduler
. 在存储库中搜索该术语不会返回任何结果。
我有点新手,所以不要激怒我,但是这里有人可以告诉我是否Firebase JobDispatcher
确实使用JobScheduler
,如果是的话,请指出库代码中的位在哪里JobScheduler
使用?
android - 我可以使用 Firebase JobDispatcher 来触发特定时间的任务吗
我正在开发一个应用程序,其中某些任务在特定时间在后台完成。
Android 开发者文档建议了各种方法。我知道 AlarmManager 可以用于此目的。但是,我认为,在打盹模式下使用 Android 6.0 中的 AlarmManager 会产生不正确的触发器。
由于我的应用程序支持低于 Android 5.0 的版本。我想到了使用 FireBaseJobDispatcher。
我可以使用 FirebaseJobDispatcher 在特定时间触发特定任务吗?
例如:我想从上午 9 点到下午 6 点每小时更新一次数据库
firebase-job-dispatcher - 如何取消firebase作业调度程序中的重复作业
我创建了一个周期性工作,我想在满足某些条件时取消周期性工作。
如何取消 firebase 中的工作?
android - 使用 firebase 作业调度程序安排重复作业
我正在尝试每 10 分钟将 android 设备的位置发布到服务器。我正在使用 Firebase 作业调度程序来执行此操作
UpdateLocationService
获取位置并发送到服务器。
我的问题:事情大部分都很好。唯一的问题是,工作安排的时间差为 4m、6m、7m、8m、10m、16m、23m ......
有人可以帮助我理解正在发生的事情。
更新:我想在 10-20 分钟内找到一次。在上面的代码中,值太低只是为了测试目的
java - 如何使用每天执行的 FCM 作业调度程序安排服务器调用?
我已经读过,为了优化设备电池,我必须使用 FCM 作业调度程序。我的要求是每天(一次)通过一个简单的 POST 请求将数据发送到服务器。现在我应该使用 FCM 调度程序还是警报管理器。如果我使用了 FCM 调度程序,我该如何使用它,因为它只设置了 trigger()。
这是文档。他们没有日常定期任务的文档。
这是他们给出的代码:
我如何使用此代码来安排定期执行的任务?