हमने WorkManager का इस्तेमाल शुरू करना लेख में बताया था कि WorkManager, आपके लिए बैकग्राउंड में एसिंक्रोनस तरीके से काम करता है. बेसिक वर्शन को लागू करने से, ज़्यादातर ऐप्लिकेशन की ज़रूरतें पूरी हो जाती हैं. ज़्यादा बेहतर इस्तेमाल के उदाहरणों के लिए, जैसे कि काम को सही तरीके से रोकने के लिए, आपको WorkManager में थ्रेडिंग और कॉंकुरेंसी के बारे में जानना चाहिए.
WorkManager, चार तरह की वर्क प्रिमिटिव उपलब्ध कराता है:
Workerको लागू करना सबसे आसान है. साथ ही, इसे पिछले सेक्शन में भी दिखाया गया है. WorkManager इसे बैकग्राउंड थ्रेड पर अपने-आप चलाता है. हालांकि, इसे बदला जा सकता है. Threading in Worker में,Workerइंस्टेंस में थ्रेडिंग के बारे में ज़्यादा पढ़ें.CoroutineWorker, Kotlin का इस्तेमाल करने वाले लोगों के लिए सुझाया गया तरीका है.CoroutineWorkerइंस्टेंस, बैकग्राउंड में काम करने के लिए सस्पेंडिंग फ़ंक्शन दिखाते हैं. डिफ़ॉल्ट रूप से, वे डिफ़ॉल्टDispatcherचलाते हैं. हालांकि, इसे अपनी पसंद के मुताबिक बनाया जा सकता है. CoroutineWorker में थ्रेडिंग में,CoroutineWorkerइंस्टेंस में थ्रेडिंग के बारे में ज़्यादा पढ़ें.- RxJava का इस्तेमाल करने वाले लोगों के लिए,
RxWorkerको लागू करने का सुझाव दिया जाता है. अगर आपके मौजूदा एसिंक्रोनस कोड का ज़्यादातर हिस्सा RxJava में मॉडल किया गया है, तो RxWorkers का इस्तेमाल किया जाना चाहिए. RxJava के सभी कॉन्सेप्ट की तरह, आपके पास थ्रेडिंग की अपनी पसंद की रणनीति चुनने का विकल्प होता है.RxWorkerइंस्टेंस में थ्रेडिंग के बारे में ज़्यादा पढ़ें. इसके लिए, RxWorker में थ्रेडिंग पर जाएं. ListenableWorker,Worker,CoroutineWorker, औरRxWorkerके लिए बेस क्लास है. यह उन Java डेवलपर के लिए है जिन्हें कॉलबैक पर आधारित एसिंक्रोनस एपीआई, जैसे किFusedLocationProviderClientके साथ इंटरैक्ट करना है और वे RxJava का इस्तेमाल नहीं कर रहे हैं. ListenableWorker में थ्रेडिंग में,ListenableWorkerइंस्टेंस में थ्रेडिंग के बारे में ज़्यादा पढ़ें.