Reputation: 624
I implement job scheduler in my Android app. For this i apply framework JobScheduler.
JobScheduler jobScheduler = (JobScheduler)getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService =
new ComponentName(getBaseContext(), ServiceAppControl.class);
JobInfo jobInfo =
new JobInfo.Builder(MYJOBID, jobService)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
.setPeriodic(100)
.setPersisted(true)
.build();
jobScheduler.schedule(jobInfo);
manifest.xml
<service
android:name=".services.ServiceAppControl"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true"/>
ServiceAppControl
public class ServiceAppControl extends JobService {
@Override
public boolean onStartJob(JobParameters params) {
Log.d("Control", "onStartJob");
return false;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}
}
I did everything right? Logging is performed only once in about 10 minutes.
---EDIT---
I found such entries in the logcat. Could this mean something?
10-12 13:40:48.324 24072-24072/ru.test.testjobscheduler W/JobInfo: Specified interval for 1001 is +1s0ms. Clamped to +15m0s0ms 10-12 13:40:48.324 24072-24072/ru.test.testjobscheduler W/JobInfo: Specified flex for 1001 is +1s0ms. Clamped to +5m0s0ms
Upvotes: 1
Views: 1096
Reputation: 57
JobScheduler works with a minimum periodic of 15 mins
change to .setPeriodic(15 * 60 * 1000)
Upvotes: 2