3

定期ジョブを作成しましたが、条件を満たしたときに定期ジョブをキャンセルしたいです。

final Job.Builder builder = dispatcher.newJobBuilder()
                .setTag("myJob")
                .setService(myJobService.class)
                .setRecurring(true)
                .setTrigger(Trigger.executionWindow(30, 60));

firebase でジョブをキャンセルするにはどうすればよいですか?

4

1 に答える 1

7

GitHub の readme には次のように書かれています。

Driver は、ジョブをスケジュール、キャンセル、および実行できるコンポーネントを表すインターフェイスです。バンドルされている唯一のドライバーは、Google Play サービスに組み込まれているスケジューラーに依存する GooglePlayDriver です。

したがって、キャンセルは使用しているドライバーの一部です。ドライバー インターフェイスのコードを調べると、ジョブをキャンセルする方法が 2 つあります。

/**
 * 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();

ディスパッチャーは、ドライバーの対応するメソッドを呼び出します。必要に応じて、GitHub プロジェクトに付属のサンプル アプリで行われているように、ドライバーでメソッドを直接呼び出すこともできます。myDriver.cancelAll()

選択したメソッドは、次の定数のいずれかを返します。

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;
于 2016-10-10T08:56:01.923 に答える