public class

DefaultRunnableScheduler

extends java.lang.Object

implements RunnableScheduler

 java.lang.Object

↳androidx.work.impl.DefaultRunnableScheduler

Gradle dependencies

compile group: 'androidx.work', name: 'work-runtime', version: '2.8.0-alpha02'

  • groupId: androidx.work
  • artifactId: work-runtime
  • version: 2.8.0-alpha02

Artifact androidx.work:work-runtime:2.8.0-alpha02 it located at Google repository (https://maven.google.com/)

Overview

The default implementation of the RunnableScheduler used by GreedyScheduler.

Summary

Constructors
publicDefaultRunnableScheduler()

publicDefaultRunnableScheduler(Handler handler)

Methods
public voidcancel(java.lang.Runnable runnable)

public HandlergetHandler()

public voidscheduleWithDelay(long delayInMillis, java.lang.Runnable runnable)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public DefaultRunnableScheduler()

public DefaultRunnableScheduler(Handler handler)

Methods

public Handler getHandler()

public void scheduleWithDelay(long delayInMillis, java.lang.Runnable runnable)

public void cancel(java.lang.Runnable runnable)

Source

/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.work.impl;

import android.os.Handler;
import android.os.Looper;

import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
import androidx.core.os.HandlerCompat;
import androidx.work.RunnableScheduler;

/**
 * The default implementation of the {@link androidx.work.RunnableScheduler} used by
 * {@link  androidx.work.impl.background.greedy.GreedyScheduler}.
 *
 * @hide
 */
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public class DefaultRunnableScheduler implements RunnableScheduler {

    private final Handler mHandler;

    public DefaultRunnableScheduler() {
        mHandler = HandlerCompat.createAsync(Looper.getMainLooper());
    }

    @VisibleForTesting
    public DefaultRunnableScheduler(@NonNull Handler handler) {
        mHandler = handler;
    }

    @NonNull
    public Handler getHandler() {
        return mHandler;
    }

    @Override
    public void scheduleWithDelay(long delayInMillis, @NonNull Runnable runnable) {
        mHandler.postDelayed(runnable, delayInMillis);
    }

    @Override
    public void cancel(@NonNull Runnable runnable) {
        mHandler.removeCallbacks(runnable);
    }
}