كيفية استدعاء دالة مع تأخير في Kotlin؟ (Android)
مرحبًا! أنا مبتدئ في Kotlin وتطوير Android. أكتب تطبيقًا بسيطًا: مؤقت عد تنازلي. أحتاج بعد الضغط على زر "ابدأ" بعد 5 ثوانٍ تنفيذ إجراء ما (مثل إظهار Toast برسالة "انتهى الوقت!").
حاولت استخدام `Thread.sleep(5000)` داخل coroutine، لكن التطبيق يتجمد لمدة 5 ثوانٍ، ويظهر Toast فقط بعد ذلك، ولا يتم تحديث الواجهة. إليك الكود الخاص بي:
```kotlin
fun startTimer() {
GlobalScope.launch {
Thread.sleep(5000)
withContext(Dispatchers.Main) {
Toast.makeText(this@MainActivity, "انتهى الوقت!", Toast.LENGTH_SHORT).show()
}
}
}
```
المشكلة أن `Thread.sleep` يحجب الخيط، وهذا غير صحيح. سمعت عن `Handler` و `Timer`، لكنني لا أفهم أي طريقة تعتبر حديثة وصحيحة في Kotlin لتأخير بسيط. من فضلك، أخبرني كيف أنفذ التأخير بشكل صحيح دون حجب واجهة المستخدم وجعل الكود قابلًا للقراءة. شكرًا مقدمًا.