JobIntentService 和 IntentService 有什么区别?

2024-03-17

我不明白这两个 API 之间有什么区别。我的意思是何时使用第一个。为什么会有 JobIntentService ? 提前致谢


我建议阅读这篇文章,解释两者之间的区别意向服务和求职意向服务 https://medium.com/@hupareshubham/need-to-know-this-thing-before-changing-intentservice-to-jobintentservice-in-android-ac7d5014fe5。当我们第一次查找这些术语时Service, IntentService, JobIntentService它们看起来几乎相似——以某种方式它们会在后台执行一些操作(用户不会注意到)。但它们的操作方式几乎没有什么区别

  • 服务 - 它在调用该服务并执行一些后台操作的同一主线程上运行。对于主线程上发生的任何长时间运行的操作,建议创建一个新线程并完成该工作(例如;Handler)不影响主线程的性能。

    缺点:在主线程上运行

  • IntentService - Intent 服务还有助于执行一些长时间运行(不确定)的后台任务。唯一的区别是它创建一个新线程来执行此任务并且不在主线程上运行。给定的工作是否在其上onHandleIntent.

    缺点:当应用程序被终止时,分配给 IntentService 的工作将会丢失

  • JobIntentService - 作业意向服务与 IntentService 非常相似,但没有什么好处,例如应用程序可以随时终止此作业,并且一旦应用程序重新创建/启动,它可以从头开始启动作业。

但从 Oreo 开始,如果应用程序在后台运行,则不允许在后台启动服务。 Android 要求我们显式启动服务context.startForegroundService代替context.startService当服务在 5 秒内启动时,它必须与通知绑定以具有与其关联的 UI 元素。

参考 :https://developer.android.com/about/versions/oreo/background.html https://developer.android.com/about/versions/oreo/background.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JobIntentService 和 IntentService 有什么区别? 的相关文章

随机推荐