code: public synchronized void postDelayed(Runnable runnable, long delay, TimeUnit unit) {
      long delayMillis = unit.toMillis(delay);
      if ((idleState != CONSTANT_IDLE && (isPaused() || delayMillis > 0)) || Thread.currentThread() != associatedThread) {
        runnables.add(new ScheduledRunnable(runnable, currentTime + delayMillis));
      } else {
        runOrQueueRunnable(runnable, currentTime + delayMillis);
      }
    }
docs: Add a runnable to the queue to be run after a delay.