ServiceIntentService的情况下,主要区别在于Service在主线程上运行,而IntentService没有在主线程上运行,而后者在工作完成时完成,而我们必须调用stopService()stopSelf()来停止Service

这两个都可以简单地传递给startService()

JobServiceJobIntentService呢?

让我们看下面的代码片段:

JobInfo job = new JobInfo.Builder(id, new ComponentName(context, ExampleJobService.class))
    .build();

JobScheduler scheduler = (JobScheduler) context
    .getSystemService(Context.JOB_SCHEDULER_SERVICE);

scheduler.schedule(job);
ExampleJobService.class可以同时引用JobServiceJobIntentService吗?

行为是否与ServiceIntentService相同(除了JobScheduler可能无法立即启 Action 业)?

最佳答案

JobIntentService本质上是IntentService的替代,它以与Android O的新后台执行限制“兼容”的方式提供了类似的语义。它是作为O +上的计划作业实现的,但是已经被抽象掉了-您的应用程序不需要关心它是一份工作。

切勿直接使用schedule()支持类对您希望使用的作业直接进行JobIntentServiceJobIntentService使用作业计划程序中的enqueue()系统,并且您不能为同一作业混合和匹配enqueue()schedule()

07-27 21:59