שרשור ב-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 שצריכים ליצור אינטראקציה עם ממשקי API אסינכרוניים מבוססי קריאה חוזרת, כמו FusedLocationProviderClient
, ולא משתמשים ב-RxJava. מידע נוסף על שרשור במקרים של ListenableWorker
זמין במאמר שרשור ב-ListenableWorker.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","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-27 (שעון UTC)."],[],[],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)."]]