我在我的项目中使用了FirebaseJobDispatcher
。这是示例代码。
public class MyCustomDispatcher extends JobService {
@Override
public boolean onStartJob(JobParameters job) {
Log.e("MyCustomDispatcher", "onStartJob() called with: " + "job = [" + job.getTag() + "]");
return false;
}
@Override
public boolean onStopJob(JobParameters job) {
Log.e("MyCustomDispatcher", "onStopJob() called with: " + "job = [" + job + "]");
return false;
}
}
为了开始我的工作,我在活动中做了一件简单的事情。
FirebaseJobDispatcher firebaseJobDispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
Job myJob = firebaseJobDispatcher.newJobBuilder()
.setService(MyCustomDispatcher.class)
.setTag("service")
.setRecurring(false)
.setTrigger(Trigger.executionWindow(0,10))
.setConstraints(Constraint.ON_ANY_NETWORK)
.build();
firebaseJobDispatcher.mustSchedule(myJob);
它开始我的服务,每当我安排工作时都会调用onStartJob()
。
唯一的问题是当我使用firebaseJobDispatcher.cancel("service");
时,它不会调用onStopJob()
。
这是实际行为还是我遗失了什么?
答案 0 :(得分:0)
我相信onStopJob()仅在你的作业在完成onStartJob()试图完成之前停止时被调用。
答案 1 :(得分:0)
我也遇到过这个问题,但是当我为这两种方法设置return true
时,onStopJob
就会被调用。我希望它会对你有所帮助。