vRa*_*lev 15 jobs android job-scheduling
JobScheduler多次调用onStartJob(),但作业已完成.一切工作正常,如果我安排一个单一的工作,并等到它完成.但是,如果我同时安排两个或多个具有不同ID的作业,则onStartJob()在调用后再次调用jobFinished().
例如,我使用除ID之外的完全相同的参数来安排作业1和作业2,然后顺序为:
onStartJob() 对于工作1和工作2jobFinished()它们都被调用了onStartJob()对于具有相同ID的两个作业再次调用它我的工作非常基础而且并不复杂.
public class MyJobService extends JobService {
@Override
public boolean onStartJob(final JobParameters params) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// do something
} finally {
// do not reschedule
jobFinished(params, false);
}
}
}).start();
// yes, job running in the background
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
// mark my background task as stopped
// do not reschedule
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我安排这样的工作
JobInfo jobInfo = createBaseBuilder(request)
.setMinimumLatency(2_000L)
.setOverrideDeadline(4_000L)
.setRequiresCharging(false)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.build();
int scheduleResult = mJobScheduler.schedule(jobInfo);
// is always success
Run Code Online (Sandbox Code Playgroud)
我不知道出了什么问题.
小智 4
我猜这是由待处理的作业引起的,所以我在服务启动后调用 mJobScheduler.cancelAll() ,问题解决了。
| 归档时间: |
|
| 查看次数: |
5621 次 |
| 最近记录: |