如何取消firebase作业调度程序中的重复作业

时间:2016-10-09 06:20:19

标签: firebase-job-dispatcher

我创建了一份定期工作,我希望在满足某些条件时取消定期工作。

{{1}}

如何在firebase中取消作业?

1 个答案:

答案 0 :(得分:6)

GitHub上的自述文件说:

  

Driver是一个代表可以安排的组件的接口,   取消并执行作业。唯一捆绑的驱动程序是   GooglePlayDriver,它依赖于Google内置的调度程序   播放服务。

因此,取消是您正在使用的驱动程序的一部分。检查the code of the driver interface有两种取消工作的方法:

/**
 * Cancels the job with the provided tag and class.
 *
 * @return one of the CANCEL_RESULT_ constants.
 */
 @CancelResult
 int cancel(@NonNull String tag);

/**
 * Cancels all jobs registered with this Driver.
 *
 * @return one of the CANCEL_RESULT_ constants.
 */
 @CancelResult
 int cancelAll();

所以在你的情况下你必须打电话:

dispatcher.cancel("myJob");

dispatcher.cancelAll();

调度员会为您调用相应的驱动程序方法。如果您愿意,也可以直接在驱动程序myDriver.cancelAll() like it is done in the sample app which comes with the GitHub project.

上调用这些方法

所选方法将返回以下常量之一:

public static final int CANCEL_RESULT_SUCCESS = 0;
public static final int CANCEL_RESULT_UNKNOWN_ERROR = 1;
public static final int CANCEL_RESULT_NO_DRIVER_AVAILABLE = 2;