</pre><pre>
import android.annotation.TargetApi;
import android.app.job.JobInfo;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.ComponentName;
import android.content.Context;
import android.os.Build;
/**
* Created by liyan on 2016/10/12.
*/
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class ProcessService extends JobService {
@Override
public void onCreate() {
super.onCreate();
startJobSheduler();
}
public void startJobSheduler() {
try {
int id = 1;
JobInfo.Builder builder = new JobInfo.Builder(id,
new ComponentName(getPackageName(), ProcessService.class.getName() ));
builder.setPeriodic(15000); //15000执行一次
builder.setPersisted(true);
JobScheduler jobScheduler = (JobScheduler)this.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.cancel(id);
int ret = jobScheduler.schedule(builder.build());
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public boolean onStartJob(JobParameters jobParameters) {
Log.d("*******", "job running");
return false;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
Log.d("*******", "job stop");
return false;
}
@Override
public void onDestroy() {
Log.d("***************","onDestroy");
//重启服务
super.onDestroy();
}
}
Mainifest文件中声明
<service android:name=".service.ProcessService" android:permission="android.permission.BIND_JOB_SERVICE" />
本文介绍了一个基于Android Lollipop版本的定时任务服务实现案例。该服务利用JobService及JobScheduler API,设置每15秒执行一次的任务,并在主程序中启动此定时任务。文章还提供了在Manifest文件中声明该服务的方法。
5031

被折叠的 条评论
为什么被折叠?



