제목으로 Kotlin? 에서 지연 후 함수를 호출하는 방법이 있습니까?
답변
당신은 일정 을 사용할 수 있습니다
inline fun Timer.schedule(
    delay: Long, 
    crossinline action: TimerTask.() -> Unit
): TimerTask (source)
예 (@Nguyen Minh Binh 덕분에-여기에서 찾았습니다 : http://jamie.mccrindle.org/2013/02/exploring-kotlin-standard-library-part-3.html )
import java.util.Timer
import kotlin.concurrent.schedule
Timer("SettingUp", false).schedule(500) { 
   doSomething()
}
답변
사용하는 옵션도 있습니다 Handler -> postDelayed
 Handler().postDelayed({
                    //doSomethingHere()
                }, 1000)
답변
여러 가지 방법
1. Handler수업 이용
Handler().postDelayed({
    TODO("Do something")
    }, 2000)
2. Timer수업 사용
Timer().schedule(object : TimerTask() {
    override fun run() {
        TODO("Do something")
    }
}, 2000)
더 짧은
Timer().schedule(timerTask {
    TODO("Do something")
}, 2000)
최단
Timer().schedule(2000) {
    TODO("Do something")
}
3. Executors수업 사용
Executors.newSingleThreadScheduledExecutor().schedule({
    TODO("Do something")
}, 2, TimeUnit.SECONDS)
답변
다음 두 라이브러리를 가져와야합니다.
import java.util.*
import kotlin.concurrent.schedule
그 후에 다음과 같이 사용하십시오.
Timer().schedule(10000){
    //do something
}
답변
당신은 수있는 launch코 루틴은, delay그것은 다음 함수를 호출 :
 /*GlobalScope.*/launch {
   delay(1000)
   yourFn()
 }
클래스 또는 객체가 외부 GlobalScope에서 코 루틴을 실행하도록하기 위해 CoroutineScope필요한 경우 주변 클래스 를 구현하는 것이 좋습니다. 그렇지 않으면 필요한 경우 해당 범위와 관련된 모든 코 루틴을 취소 할 수 있습니다.
답변
val timer = Timer()
timer.schedule(timerTask { nextScreen() }, 3000)
답변
3 초 후에 토스트를 보여주는 간단한 예 :
fun onBtnClick() {
    val handler = Handler()
    handler.postDelayed({ showToast() }, 3000)
}
fun showToast(){
    Toast.makeText(context, "Its toast!", Toast.LENGTH_SHORT).show()
}