JobDispatcher.cancel() is not calling onStopJob()



我在项目中使用了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被调用。我希望它对您有帮助。

相关内容

  • 没有找到相关文章

最新更新