2017-08-28 26 views
0

を開始していない私はJobServiceを拡張するクラスのRefreshServiceを作り、その中に私が(静的メソッドscheduleJobを持っている):はjobschedulerの仕事

public static void scheduleJob(final Context context) { 
    final JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); 
    final ComponentName refreshService = new ComponentName(context, RefreshService.class); 

    final JobInfo.Builder jobBuilder = new JobInfo.Builder(1002, refreshService); 
    jobBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); 
    jobBuilder.setRequiresDeviceIdle(false); 
    jobBuilder.setRequiresCharging(false); 
    jobBuilder.setMinimumLatency(5000L); 
    jobBuilder.setOverrideDeadline(10000L); 

    final JobInfo job = jobBuilder.build(); 
    jobScheduler.schedule(job); 
} 

そして、私のアンドロイドマニフェストに私はこれに置く:

​​ を

私は、これらのオーバーライドされたメソッドを持つJobServiceでクラスを拡張しましたonStartJobとonStopJob、onStartJobメソッドが呼び出されていません。

私には欠けているものがありますか?

答えて

0
jobBuilder.setMinimumLatency(5000L); 
jobBuilder.setOverrideDeadline(5000L); // same value = expires right away? 

これらは同じです。ジョブを処理できる瞬間、期限が切れます。おそらくOverrideDeadlineを2倍にすると解決します。

+0

私の悪い、それは10000LによってsetOverrideDeadlineのために仮定されました。私は私の質問を編集します。しかし、問題はまだ続きます – Quorrin

+0

大丈夫、私はあなたを助けることができません。古いAndroid版をサポートする必要があるため、FirebaseJobDispatcherを使用しています – Frank