Tag: gcmtaskservice

Firebase JobDispatcher – 与以前的API(JobScheduler和GcmTaskService)相比,它如何工作?

背景 Google有多种Job / JobScheduler解决scheme,比如JobScheduler和GcmTaskService 。 各有其优点和缺点。 最近,Google推出了一个名为“Firebase JobDispatcher”的新库。 问题 可悲的是,这个新的API几乎没有什么可读的。 事实上,真的很难find任何事情。 只有我find的是他们的宣传video和样品 。 但即使是他们,对这个API也没有太多的了解。 问题 回顾以前的问题,调查和比较其他API(例如, 在这里 ),我想问一下新的API是如何工作的,并且知道在使用时应该考虑什么: 一个作业是否有参数可以保留,甚至可以在需要时进行修改? 他们在样例中说:“ 一个可选的用户提供的附加组件,默认是一个空的Bundle。 ”是这样吗? 执行后可以修改吗? 工作是否可以轻松重新计划? 据说是一个表明工作是否应该重复的布尔值 。 如何重新安排时间呢? 我已经尝试过这个示例,并select了“重复”,但似乎并没有再次运行,只有一次。 它可以保护与图书馆的工作(由于独特的ID)? 更新应用程序时是否需要额外注意(如以前的API)? 应用程序更新后,作业是否仍然可以安排? 对样本进行testing,似乎应用程序更新后,工作完全消失。 可以避免吗? 是否需要RECEIVE_BOOT_COMPLETED来防止即使在设备重新启动的情况下仍然可以调度作业? 样品似乎有它。 是否有可能获得所有计划任务及其信息(包括参数)的列表,并能够取消特定/全部甚至修改它们? 通过应用程序的清除数据操作,将删除工作吗? 是否有可能告诉工作最好是在一定的时间内运行(例如早上7点到8点之间)? 它提到“ ExecutionWindowTrigger – 它指定了一个应该执行Job的时间窗口 ”。 是吗? 当它错过了这个窗口会发生什么? JobService类中的JobService方法返回一个布尔值,其描述是“ 是否还有更多的工作。 ”这是什么意思? jobFinished方法的needsReschedule参数是jobFinished意思? 他们是相互关联的吗? 我应该知道有什么限制吗? 例如每个函数的最小值和最大值?