由于崩溃或Android过程清洁而未完成的重复作业会发生什么?我认为,不可能重新安排它。它将永远不会再执行。
示例
public class MyJobService extends JobService {
@Override
public boolean onStartJob(JobParameters job) {
doSomeWork(job);
return true; // true = there is still work going on!
}
private void doSomeWork(final JobParameters job) {
new Thread() {
public void run() {
// do some work, maybe load data from internet
// loading...
// loading...
// app crashes or its process is killed by Android
// this piece of code is never reached!
jobFinished(job, false);
}
}.start();
}
}
您可以在代码中看到,崩溃永远无法终止作业。之后不会重新安排。
如果您想用FirebaseJobDispatcher.mustSchedule()
重新安排它,这将显示在logcat中:
e/fjd。外部收益:已接收到已经运行的作业的执行请求
w/fjd。Jobservice:tag = ...的工作已经在运行
即使您在之前运行FirebaseJobDispatcher.cancel()
。
有什么建议?
将您的代码放入尝试捕获块中。在接球块电话中职位(Job,true);。" true"是指工作将重新安排。
"如果Android关闭应用程序,例如,如果缺乏记忆,会发生什么?"在这种情况下,操作系统将引起OutofMemmory错误,您的尝试捕获块将处理它。