例如我想要每天trigger一次,但是只有在手機充電的時候才會trigger
使用alarmManager其實沒有辦法做到,but with JobInfo you can
here is sample code
ComponentName serviceName = new ComponentName(this, MyJobService.class);JobInfo jobInfo = new JobInfo.Builder(JOB_ID, serviceName) .setPeriodic(10000) .setRequiresCharging(true) .build();JobScheduler scheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);int result = scheduler.schedule(jobInfo);
意思是每十秒會trigger一次 MyJobService, 但是只有在充電的情況下
public class MyJobService extends JobService { @Override public boolean onStartJob(JobParameters jobParameters) { //do something Log.d("Ted","startJob"); return true; } }
上面的sample 會造成每十秒trigger 一次 MyJobService
JobInfo其實算是蠻方便的功能,可惜只能在api21才能使用.
最後還是要附上sample code
https://github.com/nightbear1009/JobInfoSample
沒有留言:
張貼留言