如何在JobScheduler中保留上下文



我有一份下的工作

public class MyPeriodicJob extends JobService{
@Override
public boolean onStartJob(JobParameters jobParameters) {
// do something (but context is needed)
return false;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
return false;
}
}

它在MainActivity 中启动

private void scheduleJob(){
JobScheduler jobScheduler = (JobScheduler)getApplicationContext()
.getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(this,
MyPeriodicJob.class);
JobInfo jobInfo = new JobInfo.Builder(1, componentName)
.setPeriodic(86400000)
.setPersisted(true).build();
jobScheduler.schedule(jobInfo);
}

设备可能会重新启动,但作业预计会持续存在。如何将上下文(必须持久化(传递给MyPeriodicJob

Job服务是service类的子级,因此您不需要将上下文传递到任何位置,因为它已经存在。服务类本身属于ContextWrapper,后者属于Context。所以只需使用this.(CONTEXT FUNCTION YOU NEED(

最新更新