代码之家  ›  专栏  ›  技术社区  ›  Florian Walther

IntentService+startForeground vs JobIntentService

  •  2
  • Florian Walther  · 技术社区  · 6 年前

    IntentService s到 JobIntentService .

    https://developer.android.com/about/versions/oreo/background

    工作计划服务 作为一个 低于Oreo,但在Oreo上安排了一个作业+

    https://developer.android.com/reference/android/support/v4/app/JobIntentService

    在什么情况下运行正常的 意向服务 Service 和一个持续的通知 更好吗?

    我可以看到一个缺点 它不会立即开始。

    2 回复  |  直到 6 年前
        1
  •  7
  •   Derek K    6 年前

    我将使用JobIntentService和AlarmManager来安排低优先级任务,比如定期刷新小部件的数据。

        2
  •  3
  •   Valgaal    5 年前

    如果你想做一些长时间运行的操作,比如音乐播放器,使用前台服务和通知。因为JobIntentService和JobScheduler一样有时间执行限制。(10分钟)

    如果您认为该用户不需要了解您的工作,您可以使用JobIntentService而无需通知。

    你的应用程序。

    有一些情况下打瞌睡模式,根据 https://www.bignerdranch.com/blog/diving-into-doze-mode-for-developers/

    在屏幕关闭和 设备没有充电,只等了几分钟 应用限制只是为了确保用户已停止使用

    例如,用户在计算时关闭了屏幕。您的任务已完成,您要运行后台服务。在这种情况下,您的JobIntentService可能会有所不同,因为设备可能处于打瞌睡模式。

    但是,如果您想立即执行后台操作,请使用带有WakeLock的ForegrounService,因为当屏幕关闭时ForegroundService不工作。