JobDispatcher.cancel()没有调用onStopJob()

时间:2017-04-20 08:58:46

标签: android firebase firebase-job-dispatcher

我在我的项目中使用了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()

这是实际行为还是我遗失了什么?

2 个答案:

答案 0 :(得分:0)

我相信onStopJob()仅在你的作业在完成onStartJob()试图完成之前停止时被调用。

答案 1 :(得分:0)

我也遇到过这个问题,但是当我为这两种方法设置return true时,onStopJob就会被调用。我希望它会对你有所帮助。