المعالجة غير المتزامنة في الخلفية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
العمل غير المتزامن هو المكون الثاني للعمل في الخلفية، إلى جانب العمل الدؤوب. بينما يحدث كل من العمل المستمر وغير المتزامن في الخلفية،
إلا أنهما مختلفان تمامًا في النهاية.
العمل غير المتزامن هو أي عمل مما يلي:
- تحدث في اللحظة ذاتها.
- عدم الحاجة إلى الاستمرار في عمليات إعادة تشغيل التطبيق أو عمليات إعادة تشغيل الجهاز
- تظهر خارج سلسلة التعليمات الرئيسية أو تحظر سلسلة التعليمات الرئيسية.
يختلف ذلك عن العمل المستمر الذي يمكنك جدولته لتنفيذه في المستقبل، ويبقى مجدولاً من خلال عمليات إعادة تشغيل التطبيق وإعادة تشغيل الجهاز.
ومن الأمثلة على العمل غير المتزامن: إرسال طلب HTTP من سلسلة التعليمات الرئيسية، مع عرض نتيجته فقط عند وصوله.
Java وKotlin
تعتمد طريقة التعامل مع العمل غير المتزامن على البنية العامة للتطبيق
التي تتبعها. إذا كنت تعمل باستخدام تطبيق بلغة البرمجة Java، فستختلف احتياجاتك
عما إذا كنت تعمل باستخدام Kotlin.
|
Kotlin |
Java |
الحل |
الكوروتينات. |
سلاسل Java. |
محتوى إضافي للقراءة |
للحصول على نظرة عامة كاملة عن الكوروتينات، راجع دليل الكوروتينات. |
يمكنك الاطّلاع على صفحة سلاسل Java للحصول على مزيد من المعلومات. |
محتوى إضافي للقراءة
لمزيد من المعلومات عن العمل المستمر، يُرجى الاطّلاع على نظرة عامة على العمل المستمر.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Asynchronous background processing\n\nAsynchronous work is the second component of background work, alongside\npersistent work. While both persistent and asynchronous work take place in the\nbackground, they are ultimately quite different.\n\nAsynchronous work is that which:\n\n- Takes place in the moment.\n- Does not need to persist across app restarts or device reboots.\n- Occurs off the main thread, or blocks the main thread.\n\nThis is in contrast to persistent work, which you may schedule for future\nexecution and which remains scheduled through app restarts and device reboots.\nAn example of asynchronous work may be sending an HTTP request off the main\nthread, returning its result only when it arrives.\n\nJava and Kotlin\n---------------\n\nThe way you handle asynchronous work depends on the overall app architecture\nyou follow. If you are working with a Java Programming Language app, your needs\nare different than if you are working with Kotlin.\n\n| | Kotlin | Java |\n| Solution | Coroutines. | Java threads. |\n| Further reading | For a full overview of Coroutines, see the [Coroutines guide](/kotlin/coroutines). | See the [Java Threads](/guide/background/asynchronous/java-threads) page for more information. |\n|-----------------|------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|\n\nFurther reading\n---------------\n\nFor more information on persistent work, see the [persistent work overview](/guide/background/persistent)."]]