Avatar ·

كيفية استدعاء دالة مع تأخير في 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 لتأخير بسيط. من فضلك، أخبرني كيف أنفذ التأخير بشكل صحيح دون حجب واجهة المستخدم وجعل الكود قابلًا للقراءة. شكرًا مقدمًا.