with JobScheduler I create a job that has to run periodically every 15 min. But it only works if my app is opened. I
When I run app all queued jobs runs one after another, even after device reboot.
AndroidManifest.xml
<service
android:name=".MyJobService"
android:permission="android.permission.BIND_JOB_SERVICE" />
MyJobService.class
public class MyJobService extends JobService {
private static final String TAG = "MyJobService";
@Override
public boolean onStartJob(JobParameters params) {
Log.d(TAG, "onStartJob: job started");
return false;
}
@Override
public boolean onStopJob(JobParameters params) {
Log.d(TAG, "onStopJob: job stopped");
return false;
}
}
And this is how I setup JobScheduler
public static void scheduleJob(Context context) {
JobScheduler jobScheduler = (JobScheduler) context.getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(context, MyJobService.class);
JobInfo.Builder builder = new JobInfo.Builder(1337, componentName);
builder.setPeriodic(15 * 60 * 1000);
builder.setPersisted(true);
builder.build();
if (jobScheduler.schedule(builder.build()) <= 0) {
Logr.d(TAG, "scheduleJob: Some error while scheduling the job");
}
}
So whats wrong here?