android 如何使用时,分,秒在延迟Kotlin

laawzig2  于 2023-03-16  发布在  Android
关注(0)|答案(3)|浏览(180)

我想在我的启动函数中使用delay。我总是使用xxxL值作为delay。是否有任何函数可以转换分钟&小时。例如

持续30秒

delay(30)

一分钟

delay(1)

两小时

delay(2)

乘以值会让人很困惑。谢谢
我尝试从DelayDuration,但在此处出现错误

delay(Duration(1.minutes))

进口

import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.time.Duration
import kotlin.time.Duration.Companion.minutes

错误

我不知道我做错了什么。

更新

我应该使用哪个来导入?

wdebmtf2

wdebmtf21#

您也可以使用delay(1.minutes)
所需导入:kotlin.time.Duration.Companion.minutes

2g32fytz

2g32fytz2#

当您希望延迟一定量的毫秒或任何Duration时,delay()函数可以接受Long值。
Kotlin提供了创建任意数字的持续时间的助手。你可以从Duration对象中使用特殊的扩展属性来创建它们。
要创建持续时间:

val second: Duration = 1.seconds
val duration: Duration = 2.4.minutes

您可以使用它的延迟功能

scope.launch {
    delay(seconds)
    delay(duration)
}

持续时间可以转换回毫秒长:

val oneSecondInMillis: Long = seconds.inWholeMilliseconds
zi8p0yeb

zi8p0yeb3#

Duration的构造函数为

Duration(long seconds, int nanos)

要使其工作,您可以使用以下命令

Duration.ofSeconds(10).toMillis()

要使用语法1.minutes1.seconds,您需要

import kotlin.time.minutes
import kotlin.time.seconds

注意:此库需要API 26+

相关问题