package com.silencedut.knowweather.scheduleJob; import android.annotation.TargetApi; import android.app.job.JobInfo; import android.app.job.JobScheduler; import android.content.ComponentName; import android.content.Context; import android.os.Build; /** * Created by SilenceDut on 2016/10/23 . */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) public class JobWork implements Scheduler { private static final int JOB_ID = 1; @Override public void startPolling(Context context, long seconds, Class<?> cls, String action) { stopPolling(context, cls, action); JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, new ComponentName(context.getPackageName(), cls.getName())); builder.setPeriodic(seconds * 1000); builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); jobScheduler.schedule(builder.build()); } @Override public void stopPolling(Context context, Class<?> cls, String action) { JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); jobScheduler.cancel(JOB_ID); } }