我在项目中使用了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()
。
是实际行为还是我缺少的东西?
我相信,只有在您的作业完成之前,才能在onstopjob((中调用onstartjob((试图做的任何东西。
我也遇到了这个问题,但是当我为这两种方法设置return true
时,onStopJob
被调用。我希望它对您有帮助。