嗨,我在我的应用程序中对 JobScheduler
进行了一个示例。这是我如何启动它的:
jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService = new ComponentName(getPackageName(),
MyJobService.class.getName());
JobInfo jobInfo = new JobInfo.Builder(MYJOBID, jobService)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setExtras(bundle).build();
jobScheduler.schedule(jobInfo);
我在JobService
中显示了一个提示:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class MyJobService extends JobService {
public MyJobService() {
}
@Override
public boolean onStartJob(JobParameters params) {
// UtilityMethods.showToast(this,params.getExtras().getString("json"));
Toast.makeText(this,"test",Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onStopJob(JobParameters params) {
UtilityMethods.showToast(this,"onStop()");
return false;
}
}
即使我尝试关闭互联网并从后台杀死应用程序,这仍然可以完美地工作。
然后,我尝试在我的一个库中构建类似的东西。我在库中编写了相同的代码,并从我的应用程序的MainActivity
调用它。但是这一次,当我从后台杀死应用程序时,它停止工作。有人能告诉我为什么吗?
我初始化它的MainActivity
JobScheduler jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService = new ComponentName(getPackageName(),
MyJobService.class.getName());
JobInfo jobInfo = new JobInfo.Builder(MYJOBID, jobService)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build();
jobScheduler.schedule(jobInfo);
当我从onCreate开始运行它时,它可以工作,但如果我从回调函数中开始运行它则无法工作。
非常感谢您的帮助。