実装したいのは、毎時サーバーからデータをフェッチするバックグラウンドサービスです。私はこのサービスが起動後に定期的に実行されることを期待しています。このため、私はJobSchedulerを使用してこの機能を実装することにしました。JobScheduler.schedule()を呼び出すタイミング
val jobScheduler = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler val builder = JobInfo.Builder(1, ComponentName(this, PullDataJob::class.java)) .setPeriodic(1000L * 60 * 60) // one hour .setRequiredNetworkType(NETWORK_TYPE_ANY) .setPersisted(true) jobScheduler.schedule(builder.build())
これはonCreate()
の内側に配置され、私の現在のコードです。しかし、JobScheduler.schedule()
をonCreate()
に入れると、アプリケーションを開くたびにサービスが自動的に実行されることがわかりました。
システムブート後にユーザーがアプリケーションを開くことがない場合でも、サービスを定期的に実行するために、上記のコードを置くのに最適な場所はどこですか?