WorkManager में थ्रेडिंग की सुविधा

हमने 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 इंस्टेंस में थ्रेडिंग के बारे में ज़्यादा पढ़ें.