Android Periodic job scheduler not running after device reboot

Viewed 203

I have schedule a periodic Job which is as below :

    ComponentName serviceComponent = new ComponentName(context, MyJobService.class);
            JobInfo.Builder builder = new JobInfo.Builder(0, serviceComponent);
            builder.setBackoffCriteria(15*60*1000, JobInfo.BACKOFF_POLICY_LINEAR);
            builder.setPeriodic(15*60*1000);
            builder.setPersisted(true);
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
            sendToScheduler(context,builder);

  @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private static  void sendToScheduler(Context context, JobInfo.Builder builder ){

        JobScheduler jobScheduler = null;

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            jobScheduler = context.getSystemService(JobScheduler.class);
        }else{
            jobScheduler = (JobScheduler) context.getSystemService(context.JOB_SCHEDULER_SERVICE);
        }
        jobScheduler.schedule(builder.setPersisted(true).build());

    }

Its entry in manifest is as below :

<service
            android:name=".jobs.MyJobService"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.BIND_JOB_SERVICE" />

Below is JOB service code

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class MyJobService extends JobService {

    private static final String TAG = "MyJobService";


    @Override
    public boolean onStartJob(JobParameters params) {
        Log.d(TAG, "Job started ************************************");

        //make network call and process data
        return true;

    }


    @Override
    public boolean onStopJob(JobParameters params) {
        Log.d(TAG, "Job ended -------------------------------");

        return true;

    }

}

After running this code on my one plus 6 device, I can see that this job is not running. I didnt get any logs for starting a job even after 15 -30 minutes on device reboot. I am not able to figure out whats the problem in the code

0 Answers
Related