2015年5月28日 星期四

Android 開發 (九十二) JobInfo

什麼是JobInfo? 其實可以把它想成進階版的alarmManager
例如我想要每天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

沒有留言:

張貼留言