Firebase JobDisPatcher:由于错误而无休止地运行的作业再也不会安排



由于崩溃或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错误,您的尝试捕获块将处理它。

相关内容

  • 没有找到相关文章

最新更新