我开始知道,为了执行后台任务,后台服务并不是一种解决方法,而是将Job Scheduler作为替代方案更加专注
我在我的应用程序中应用了作业调度程序功能,我很困惑,为什么我的工作没有按预期运行,而在Android模拟器中它运行顺利
下面是我到目前为止应用的代码
Java.Lang.Class javaClass = Java.Lang.Class.FromType(typeof(jobsched));
ComponentName component = new ComponentName(this, javaClass)
JobInfo.Builder builder = new JobInfo.Builder(999, component)
.SetMinimumLatency(1000) // Wait at least 1 second
.SetOverrideDeadline(5000) // But no longer than 5 seconds
.SetPersisted(true)
.SetRequiredNetworkType(NetworkType.Any);
JobInfo jobInfo = builder.Build();
JobScheduler jobScheduler = (JobScheduler)GetSystemService(JobSchedulerService);
int result = jobScheduler.Schedule(jobInfo);
if (result == JobScheduler.ResultSuccess)
{
// The job was scheduled.
}
else
{
// Couldn't schedule the job.
}
和调度程序服务
public override bool OnStartJob(JobParameters @params)
{
Task.Run(() =>
{ });
JobFinished(@params, true);
return true;
}
public override bool OnStopJob(JobParameters @params) {
return true;
}
当应用程序打开时,以上调度程序似乎工作正常,但是当通过从最近的任务中滑动关闭应用程序时,它不再通知我
我错过了什么,请帮我解决这个问题