سلسلة المحادثات في WorkManager
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
في بدء استخدام WorkManager، ذكرنا أنّ WorkManager يُجري العمل في الخلفية بشكل غير متزامن نيابةً عنك. يلبّي التنفيذ الأساسي متطلبات معظم التطبيقات. بالنسبة إلى حالات الاستخدام الأكثر تقدمًا، مثل التعامل بشكل صحيح مع العمل الذي يتم إيقافه، ينبغي أن تتعرف على سلاسل المحادثات والتزامن في WorkManager.
هناك أربعة أنواع مختلفة من أساسيات العمل التي يوفرها WorkManager:
Worker
هو أبسط عملية تنفيذ،
والعملية التي رأيتها في الأقسام السابقة. يقوم WorkManager تلقائيًا بتشغيله
على سلسلة محادثات في الخلفية (يمكنك تجاوزها). يمكنك قراءة المزيد من المعلومات حول سلاسل المحادثات
في حالات Worker
من خلال Threading in Worker.
CoroutineWorker
هي طريقة التنفيذ المُقترحة لمستخدمي Kotlin. تعرض مثيلات CoroutineWorker
دالة تعليق للعمل في الخلفية. تشغِّل هذه الأجهزة تلقائيًا قيمة Dispatcher
تلقائية يمكنك تخصيصها. يمكنك الاطّلاع على مزيد من المعلومات حول سلاسل المحادثات في
CoroutineWorker
حالات في Threading in CoroutineWorker.
RxWorker
هو التنفيذ الموصى به
لمستخدمي RxJava. يجب استخدام RxWorkers إذا كان الكثير من التعليمات البرمجية غير المتزامنة
الحالية قد تم تصميمها في RxJava. كما هو الحال مع جميع مفاهيم RxJava،
لك حرية اختيار استراتيجية الترابط التي تختارها. يمكنك الاطّلاع على مزيد من المعلومات حول سلاسل المحادثات في مثيلات RxWorker
في Threading in RxWorker.
ListenableWorker
هي الفئة
الأساسية لكل من Worker
وCoroutineWorker
وRxWorker
. وهو مخصص لمطوّري برامج Java الذين يتعين عليهم التفاعل مع واجهات برمجة التطبيقات غير المتزامنة والمستندة إلى معاودة الاتصال مثل FusedLocationProviderClient
ولا يستخدمون RxJava. يمكنك الاطّلاع على مزيد من المعلومات
حول سلاسل المحادثات في مثيلات ListenableWorker
في Threading in ListenableWorker.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ 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,["# Threading in WorkManager\n\nIn [Getting started with WorkManager](/topic/libraries/architecture/workmanager/basics),\nwe mentioned that WorkManager performs background work asynchronously on your\nbehalf. The basic implementation addresses the demands of most apps. For more\nadvanced use cases, such as correctly handling work being stopped, you should\nlearn about threading and concurrency in WorkManager.\n\nThere are four different types of work primitives provided by WorkManager:\n\n- [`Worker`](/reference/androidx/work/Worker) is the simplest implementation, and the one you have seen in previous sections. WorkManager automatically runs it on a background thread (that you can override). Read more about threading in `Worker` instances in [Threading in Worker](/topic/libraries/architecture/workmanager/advanced/worker).\n- [`CoroutineWorker`](/reference/kotlin/androidx/work/CoroutineWorker) is the recommended implementation for Kotlin users. `CoroutineWorker` instances expose a suspending function for background work. By default, they run a default `Dispatcher`, which you can customize. Read more about threading in `CoroutineWorker` instances in [Threading in CoroutineWorker](/topic/libraries/architecture/workmanager/advanced/coroutineworker).\n- [`RxWorker`](/reference/androidx/work/RxWorker) is the recommended implementation for RxJava users. RxWorkers should be used if a lot of your existing asynchronous code is modelled in RxJava. As with all RxJava concepts, you are free to choose the threading strategy of your choice. Read more about threading in `RxWorker` instances in [Threading in RxWorker](/topic/libraries/architecture/workmanager/advanced/rxworker).\n- [`ListenableWorker`](/reference/androidx/work/ListenableWorker) is the base class for `Worker`, `CoroutineWorker`, and `RxWorker`. It is intended for Java developers who have to interact with callback-based asynchronous APIs such as `FusedLocationProviderClient` and are not using RxJava. Read more about threading in `ListenableWorker` instances in [Threading in ListenableWorker](/topic/libraries/architecture/workmanager/advanced/listenableworker)."]]