Как решить Handler () устарела? - PullRequest
0 голосов
/ 04 апреля 2020

Может кто-нибудь знать, как исправить устаревшее waring или любое альтернативное решение для этого.

 Handler().postDelayed({
        context?.let {
           //code
        }
    }, 3000)

Ответы [ 3 ]

0 голосов
/ 04 апреля 2020

Рассмотрите возможность использования сопрограмм

scope.launch {
    delay(3000L)
    // do stuff
}
0 голосов
/ 04 апреля 2020

Устаревшая функция - это конструктор для Handler. Используйте Handler(Looper.myLooper()) .postDelayed(runnable, delay) вместо

0 голосов
/ 04 апреля 2020

Используйте Executor вместо обработчика для получения дополнительной информации Executor

, чтобы достигнуть задержки после отправки, используйте ScheduledExecutorService

    private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
        Runnable runnable = new Runnable() {
  public void run() {
      // Do something
  }
  };
worker.schedule(runnable, 2, TimeUnit.SECONDS);
...