作业计划程序比 startService() 提供哪些性能提升



Oreo,如果应用程序不在前台,服务将无法工作,但我们可以使用JobSchedular来执行后台操作。

那么真正的是JobSchedulerstartService()之间的区别,以及为什么Android支持JobSchedular超过startService()的后台操作,来自oreo

我仍然可以从后台Schedule大量的Jobs,这也会影响电池性能。

从奥利奥,如果应用程序不在前台,服务将无法工作

是的,会的。它只需要是一个前台服务。

那么真正的区别是 JobScheduler 和 startService(( 之间的区别

startService()立竿见影。使用JobScheduler计划作业不是。JobScheduler可以将工作推迟到以后需要完成其他工作,以最大程度地减少功耗(CPU,WiFi,移动数据等(的时间。

此外,startService()总是会发生。使用JobScheduler计划作业可能不会。您可以对作业设置条件(例如,需要网络连接(,并且只有在满足条件时才会运行作业。

以及为什么 android 在 startService(( 上支持 JobSchedular 进行 oreo 的后台操作。

据我所知,大部分功耗。

我仍然可以从后台安排大量作业,这也会影响电池性能。

是的,但谷歌有一个更好的API,能够在未来控制它。如果开发者滥用JobScheduler,未来版本的 Android 可以进一步限制作业的速率,扩展作业的打盹模式,等等。

来自安卓开发者网站:

框架将智能地了解何时执行作业,并且 尝试尽可能多地批处理和延迟它们。通常,如果您 不要为作业指定截止日期,它可以随时运行 取决于作业计划程序内部队列的当前状态。

在作业运行时,系统会代表您的 .app。因此,您无需采取任何行动来保证 设备在作业期间保持唤醒状态。

启动后台服务时,即使应用在后台运行,它也会运行,因此它会使用资源。使用JobScheduler资源仅分配并用于特定作业,并在完成后释放。

相关内容

最新更新