Como chamar uma função com delay em Kotlin? (Android)
Olá! Sou novo em Kotlin e desenvolvimento Android. Estou escrevendo um aplicativo simples: um timer de contagem regressiva. Preciso que, após clicar no botão "Iniciar", após 5 segundos, alguma ação seja executada (por exemplo, exibir um Toast com a mensagem "Tempo esgotado!").
Tentei usar `Thread.sleep(5000)` dentro de uma coroutine, mas o aplicativo simplesmente congela por 5 segundos, e o Toast só aparece depois disso, e a interface não é atualizada. Aqui está meu código:
```kotlin
fun startTimer() {
GlobalScope.launch {
Thread.sleep(5000)
withContext(Dispatchers.Main) {
Toast.makeText(this@MainActivity, "Tempo esgotado!", Toast.LENGTH_SHORT).show()
}
}
}
```
O problema é que `Thread.sleep` bloqueia a thread, e isso está errado. Já ouvi falar sobre `Handler` e `Timer`, mas não entendo qual maneira é considerada moderna e correta em Kotlin para um delay simples. Por favor, me diga como implementar o delay corretamente, sem bloquear a UI e com código legível. Desde já, obrigado!