首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Kotlin延迟后如何调用函数?

在Kotlin延迟后如何调用函数?
EN

Stack Overflow用户
提问于 2017-04-11 14:19:17
回答 13查看 273.8K关注 0票数 248

作为标题,在Kotlin中有在延迟后(例如1秒)调用函数的方法吗?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2017-04-11 14:23:38

您可以使用日程安排

代码语言:javascript
复制
inline fun Timer.schedule(
    delay: Long, 
    crossinline action: TimerTask.() -> Unit
): TimerTask (source)

示例(感谢@Nguyen在这里找到它:http://jamie.mccrindle.org/2013/02/exploring-kotlin-standard-library-part-3.html)

代码语言:javascript
复制
import java.util.Timer
import kotlin.concurrent.schedule

Timer("SettingUp", false).schedule(500) { 
   doSomething()
}
票数 215
EN

Stack Overflow用户

发布于 2017-04-13 22:11:40

还有一个选项可以使用Handler -> postDelayed

代码语言:javascript
复制
 Handler().postDelayed({
                    //doSomethingHere()
                }, 1000)
票数 248
EN

Stack Overflow用户

发布于 2018-11-27 09:11:49

多方面

1.使用Handler

代码语言:javascript
复制
Handler().postDelayed({
    TODO("Do something")
    }, 2000)

2.使用Timer

代码语言:javascript
复制
Timer().schedule(object : TimerTask() {
    override fun run() {
        TODO("Do something")
    }
}, 2000)

// Shorter

Timer().schedule(timerTask {
    TODO("Do something")
}, 2000)


// Shortest

Timer().schedule(2000) {
    TODO("Do something")
}

3.使用Executors

代码语言:javascript
复制
Executors.newSingleThreadScheduledExecutor().schedule({
    TODO("Do something")
}, 2, TimeUnit.SECONDS)
票数 212
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43348623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档