WorkManager का इस्तेमाल शुरू करने के लिए, सबसे पहले अपने Android डिवाइस में लाइब्रेरी को इंपोर्ट करें प्रोजेक्ट.
अपने ऐप्लिकेशन की build.gradle
फ़ाइल में, ये डिपेंडेंसी जोड़ें:
ग्रूवी
dependencies { def work_version = "2.9.1" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support implementation "androidx.work:work-multiprocess:$work_version" }
Kotlin
dependencies { val work_version = "2.9.1" // (Java only) implementation("androidx.work:work-runtime:$work_version") // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("androidx.work:work-rxjava2:$work_version") // optional - GCMNetworkManager support implementation("androidx.work:work-gcm:$work_version") // optional - Test helpers androidTestImplementation("androidx.work:work-testing:$work_version") // optional - Multiprocess support implementation("androidx.work:work-multiprocess:$work_version") }
डिपेंडेंसी जोड़ने और अपने Gradle प्रोजेक्ट को सिंक करने के बाद, अगला चरण, चलाने के लिए कुछ काम तय करना है.
काम को परिभाषित करना
Worker
का इस्तेमाल करके, काम के बारे में बताया गया है
क्लास. doWork()
तरीका, बैकग्राउंड पर एसिंक्रोनस तरीके से चलता है
WorkManager से मिला थ्रेड.
WorkManager को चलाने के लिए कुछ काम बनाना हो, तो Worker
क्लास को बढ़ाएं और
doWork()
तरीके को बदलें. उदाहरण के लिए, अपलोड करने वाला Worker
बनाने के लिए
इमेज अपलोड करने के बाद, ये काम किए जा सकते हैं:
Kotlin
class UploadWorker(appContext: Context, workerParams: WorkerParameters): Worker(appContext, workerParams) { override fun doWork(): Result { // Do the work here--in this case, upload the images. uploadImages() // Indicate whether the work finished successfully with the Result return Result.success() } }
Java
public class UploadWorker extends Worker { public UploadWorker( @NonNull Context context, @NonNull WorkerParameters params) { super(context, params); } @Override public Result doWork() { // Do the work here--in this case, upload the images. uploadImages(); // Indicate whether the work finished successfully with the Result return Result.success(); } }
Result
doWork()
से वापस आने पर, WorkManager सेवा को
काम हो गया हो और इसके फ़ेल हो जाने पर, वह काम हो या नहीं
दोबारा कोशिश की.
Result.success()
: काम सफलतापूर्वक खत्म हो गया.Result.failure()
: काम नहीं हो सका.Result.retry()
: कार्रवाई पूरी नहीं हो सकी और इसे किसी और समय पर आज़माना चाहिए इसके अनुसार फिर से कोशिश करने की नीति.
WorkRequest बनाएं
आपका काम तय हो जाने के बाद, उसे WorkManager सेवा के साथ शेड्यूल किया जाना चाहिए चलाने के लिए. WorkManager, मीटिंग शेड्यूल करने की सुविधा में काफ़ी सुविधाएं देता है काम. इसे चलने के लिए शेड्यूल किया जा सकता है समय-समय पर समय अंतराल में, या आप इसे केवल एक बार चलाने के लिए शेड्यूल कर सकते हैं समय.
हालाँकि, आपने काम को शेड्यूल करने के लिए हमेशा
WorkRequest
. हालांकि,
Worker
फ़ंक्शन की इकाई के बारे में बताता है.
WorkRequest
(और इसकी
सब-क्लास) से तय होता है कि उसे कब और कैसे चलाना चाहिए. सबसे आसान मामले में, आपके पास
किसी
OneTimeWorkRequest
,
जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है.
Kotlin
val uploadWorkRequest: WorkRequest = OneTimeWorkRequestBuilder<UploadWorker>() .build()
Java
WorkRequest uploadWorkRequest = new OneTimeWorkRequest.Builder(UploadWorker.class) .build();
सिस्टम में WorkRequest सबमिट करें
आखिर में, आपको इसका इस्तेमाल करके WorkManager
को अपना WorkRequest
सबमिट करना होगा:
enqueue()
तरीका.
Kotlin
WorkManager .getInstance(myContext) .enqueue(uploadWorkRequest)
Java
WorkManager .getInstance(myContext) .enqueue(uploadWorkRequest);
वर्कर को एक्ज़ीक्यूट किए जाने का सटीक समय, इस बात पर निर्भर करता है कि
ऐसे कंस्ट्रेंट जिनका इस्तेमाल आपके WorkRequest
में और सिस्टम ऑप्टिमाइज़ेशन पर किया जाता है.
WorkManager को इस तरह डिज़ाइन किया गया है कि वह इन पाबंदियों के तहत सबसे सही तरीके से काम करे.
अगले चरण
'शुरुआती निर्देश', सिर्फ़ सरफ़ेस को स्क्रैच करते हैं. WorkRequest
यह कर सकता है
अतिरिक्त जानकारी भी शामिल करें, जैसे कि वे प्रतिबंध जिनके तहत
काम चलना चाहिए, काम को इनपुट करना चाहिए, देरी हो, और फिर से कोशिश करने के लिए बैकऑफ़ नीति
काम. अगले सेक्शन में, अपने काम के बारे में जानकारी दें
अनुरोध करते हैं, तो आपको
इन विकल्पों के बारे में ज़्यादा जानकारी पाने के साथ-साथ,
यूनीक और बार-बार होने वाले काम को शेड्यूल करने के बारे में बताया गया है.
अन्य संसाधन
गाइड दस्तावेज़ों के अलावा, यहां कई ब्लॉग, कोडलैब, और कोड भी मौजूद हैं सैंपल उपलब्ध हैं. इनसे आपको मदद मिल सकती है.
सैंपल
- WorkManagerSample, आसान इमेज प्रोसेसिंग ऐप्लिकेशन.
- सनफ़्लावर, अलग-अलग आर्किटेक्चर के सबसे सही तरीके दिखाने वाला डेमो ऐप्लिकेशन कॉम्पोनेंट, जिसमें WorkManager भी शामिल है.
कोड लैब
- WorkManager (Kotlin) और (Java) के साथ काम करना
- Advanced WorkManager (Kotlin)
ब्लॉग
- पेश है WorkManager
- WorkManager की बुनियादी बातें
- WorkManager और Kotlin
- WorkManager की समयावधि
- WorkManager को पसंद के मुताबिक बनाना - बुनियादी बातें
- डैगर की मदद से WorkManager को पसंद के मुताबिक बनाना