ジョブが所定の時間に起動していません...遅延...遅延...遅延時間が長くなります。私の要件は、Android 7.0以降のJob Schedulerを使用して10分ごとに何をしてもジョブを実行することです。 は、ここに私のコードスニペットジョブスケジューラAndroid 7.0(Nougat)で周期的に繰り返されない
private static long Scheduler_Interval = 5 * DateUtils.MINUTE_IN_MILLIS;
JobScheduler mJobScheduler mJobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(getPackageName(), JobSchedulerService.class.getName()));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
builder.setPeriodic(Scheduler_Interval, 1 * DateUtils.MINUTE_IN_MILLIS);
}
builder.setRequiresDeviceIdle(false);
if (mJobScheduler.schedule(builder.build()) <= 0) {
ShowToast("Some error while scheduling the job");
}
public class JobSchedulerService extends JobService {
@Override
public boolean onStartJob(JobParameters jobParameters) {
writeToTestLogFile(GetSavedDateFromLocationProvider()+ "|onStartJob");
return false;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
writeToTestLogFile(GetSavedDateFromLocationProvider()+ "|onStopJob");
return false;
}
}
を設定するのAndroid 6.0以上のDozeモードではアンドロイド7.0 –
でこの機能を実現するために他の方法があり、あなたが何かを行うことができる唯一の方法は、これはユーザーがあなたを追加し、頻繁にされている場合アプリをバッテリー最適化ホワイトリストに追加します。すべてのユーザーがこれを行うわけではありません。 – CommonsWare
@CommonsWare 6.0では正常に動作しますが、7.0ではそれがありません –