除了 Handler.postDelayed() 之外,还有其他方法可以在 android 中创建时间延迟吗?

Is there any other way of creating a time delay in android other than Handler.postDelayed()?

Handler.PostDelayed() 对我来说工作不一致。 1 毫秒和 10 毫秒的延迟是相同的,我还需要在我的项目中使用更小的延迟。还有其他我可以使用的功能吗?谢谢!

你可以试试这个:

    Timer t = new Timer();

    t.scheduleAtFixedRate(
            new TimerTask() {

                @Override
                public void run() {

                        // Your code
                        cancel(); // For exit to loop

                    }

                }

            },
            0,
            100); // Period: time in milliseconds between successive task executions.

您可以为此使用 Kotlin 协程。

摘自documentation

import kotlinx.coroutines.*

fun main() {
    GlobalScope.launch { // launch a new coroutine in background and continue
        delay(1000L) // non-blocking delay for 1 second (default time unit is ms)
        println("World!") // print after delay
    }
    println("Hello,") // main thread continues while coroutine is delayed
    Thread.sleep(2000L) // block main thread for 2 seconds to keep JVM alive
}

您可以循环操作并显着减少资源消耗:

fun main() = runBlocking {
    repeat(100_000) { // launch a lot of coroutines
        launch {
            delay(1000L)
            print(".")
        }
    }
}

以下文章可能会有帮助:Kotlin Coroutines — Thread.sleep() vs delay

你也可以考虑CountDownTimer