태그 보관물: kotlin

kotlin

Kotlin에서 지연 후 함수를 호출하는 방법은 무엇입니까? Kotlin? 에서 지연 후 함수를

제목으로 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()
}