2017-09-21 4 views
6

IntentService主な違いはServiceメインスレッド上で動作IntentServiceがいない間、私たちはどちらかstopService()stopSelf()Serviceを停止するために呼び出す必要がありながら、作業が行われ、後者仕上げそのものです。JobIntentServiceはJobServiceにどのように関連していますか? <code>Service</code>の場合

これらの両方は、単にstartService()に渡すことができます。

JobServiceおよびJobIntentServiceについて

は、以下のコードスニペットを見てみましょう:

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

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

scheduler.schedule(job); 

JobServiceJobIntentServiceの両方にExampleJobService.classを参照してくださいことはできますか?

この動作は、ServiceIntentServiceと同じです(JobSchedulerはすぐにジョブを開始できない場合があります)。

答えて

2

JobIntentServiceは本質的にはIntentServiceの代わりであり、Android Oの新しいバックグラウンド実行制限で「うまくいく」という意味で同様のセマンティクスを提供します。これはO +上でスケジュールされたジョブとして実装されていますが、それは抽象化されています。アプリはそれが仕事だと気にする必要はありません。

決してschedule()JobIntentServiceサポートクラスで使用する予定のジョブ。 JobIntentServiceはジョブスケジューラでenqueue()システムを使用しており、同じジョブに対してenqueue()schedule()を混在させて一致させることはできません。

+0

JobIntentServiceは別のスレッドで実行されますか? –

+1

**アレキサンダーファーバー**、上記[DOC](https://developer.android.com/reference/android/support/v4/app/JobIntentService.html#onHandleWork%28android.content.Intent%29) 'onHandleWork 'バックグラウンドスレッドで動作する – user2650128

関連する問題