java - JobIntentService 和 IntentService 有什么区别?

标签 java android background-process android-intentservice jobintentservice

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

最佳答案

我建议阅读这篇文章,解释 intent service and job intent service 之间的区别。 .当我们第一次寻找这些术语时Service , IntentService , JobIntentService它们看起来几乎相似——以一种或另一种方式,它们会在后台执行一些操作(用户不会注意到)。但是它们的操作方式几乎没有区别,

  • 服务 - 这在调用此服务并执行一些后台操作的同一主线程上运行。对于主线程上发生的任何长时间运行的操作,建议创建一个新线程并在不影响主线程性能的情况下完成该工作(例如 Handler)。
    缺点:在主线程上运行
  • IntentService - Intent 服务还有助于执行一些长时间运行(无限期)的后台任务。唯一的区别是它创建了一个新线程来执行这个任务,而不是在主线程上运行。给定的工作是 onHandleIntent .
    缺点:当应用程序被杀死时,分配给 IntentService 的工作会丢失
  • JobIntentService - 工作 Intent 服务与 IntentService 非常相似,但没有什么好处,例如应用程序可以随时终止此工作,并且一旦应用程序重新创建/启动,它就可以从头开始工作。

  • 但是从奥利奥,如果应用程序在后台运行,则不允许在后台启动服务。 Android 要求我们通过 context.startForegroundService 显式启动服务而不是 context.startService并且当服务在 5 秒内启动时,它必须与通知相关联,以便有一个与之关联的 UI 元素。
    引用:https://developer.android.com/about/versions/oreo/background.html

    关于java - JobIntentService 和 IntentService 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53252792/

    相关文章:

    android - iOS 和 Android 上的 GPS 位置

    android - 如何在从内部存储中选择的 imageView 上显示图像?

    Python Popen 在不应该等待的时候等待(bg 和输出重定向)

    reactjs - react-native-background-timer, null 不是一个对象

    java - 如何使用 Jgit API 检索指定 github 帐户中的存储库列表?

    java - 程序编译但不打印结果

    android - 是否可以在 C++ 中创建控件并在 Java Activity 中使用?

    java - 使用 Google AppEngine 作为个人网站(wordpress 博客、wiki)的 "cache"

    java - 如何在不更改 javafx 边框的情况下更改 TextField 的背景颜色?

    安卓应用程序 : application should launch as service