WorkManager Kotlin: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

WorkManager for Kotlin का परिचय

WorkManager Google की एक Android लाइब्रेरी है जो बैकग्राउंड टास्क को शेड्यूल करने के लिए बनाई गई है। यह गारंटी देती है कि आपके टास्क डिवाइस के रीस्टार्ट होने या ऐप बंद होने पर भी पूरे होंगे। यह Android Jetpack का हिस्सा है और डिलेड, पीरियोडिक और एक बार के टास्क शेड्यूल करने के लिए एक सरल और विश्वसनीय API प्रदान करता है।

WorkManager का मुख्य उद्देश्य पुराने बैकग्राउंड मैकेनिज्म जैसे Service या AsyncTask को बदलना और Android के विभिन्न वर्जन (API 14+) के साथ संगतता सुनिश्चित करना है। यह लाइब्रेरी ऑटोमैटिकली टास्क को एक्जीक्यूट करने का सबसे अच्छा तरीका चुनती है: JobScheduler (API 23+), AlarmManager + BroadcastReceiver (पुराने वर्जन) या Firebase JobDispatcher (अगर कनेक्टेड हो)।

WorkManager निम्नलिखित स्थितियों के लिए एकदम सही है: सर्वर से डेटा सिंक करना, एनालिटिक्स भेजना, फाइल डाउनलोड करना, इमेज प्रोसेसिंग, बैकअप, push-नोटिफिकेशन भेजना और कोई भी ऐसा टास्क जिसे तुरंत नहीं बल्कि जल्द ही पूरा करना हो।

WorkManager इंस्टॉल करना

WorkManager pip या npm के ज़रिए इंस्टॉल नहीं होता, क्योंकि यह Android (Kotlin/Java) के लिए एक लाइब्रेरी है। इसे प्रोजेक्ट में जोड़ने के लिए build.gradle फाइल (मॉड्यूल लेवल) में बदलाव करना होगा।

चरण 1: अपने मॉड्यूल की build.gradle फाइल (app/build.gradle) खोलें।

चरण 2: dependencies ब्लॉक में यह डिपेंडेंसी जोड़ें:

dependencies {
    implementation "androidx.work:work-runtime-ktx:2.9.0"
}

चरण 3: प्रोजेक्ट को सिंक करें (Sync Now)।

अगर आप Kotlin DSL का उपयोग कर रहे हैं, तो डिपेंडेंसी इस तरह दिखेगी:

dependencies {
    implementation("androidx.work:work-runtime-ktx:2.9.0")
}

महत्वपूर्ण: वर्जन 2.9.0 इस लेख को लिखने के समय तक का नवीनतम वर्जन है। Android Developers की आधिकारिक साइट पर नवीनतम वर्जन जांचने की सलाह दी जाती है।

कोड उदाहरण के साथ त्वरित शुरुआत

एक बहुत ही सरल उदाहरण देखते हैं: एक बैकग्राउंड टास्क बनाएंगे जो Logcat में एक लॉग प्रिंट करेगा।

चरण 1: Worker क्लास बनाएं

import android.content.Context
import android.util.Log
import androidx.work.Worker
import androidx.work.WorkerParameters

class SimpleWorker(context: Context, params: WorkerParameters) : Worker(context, params) {

    override fun doWork(): Result {
        Log.d("SimpleWorker", "बैकग्राउंड टास्क पूरा हुआ!")
        // यहां कोई भी लंबी प्रक्रिया चला सकते हैं
        return Result.success()
    }
}

चरण 2: टास्क को शेड्यूल करें

import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager

val workRequest = OneTimeWorkRequestBuilder<SimpleWorker>()
    .build()

WorkManager.getInstance(context).enqueue(workRequest)

enqueue() को कॉल करने के बाद, टास्क जल्द ही एक्जीक्यूट हो जाएगा (आमतौर पर कुछ सेकंड में, अगर कोई पाबंदी न हो)।

WorkManager के मुख्य तरीके और फंक्शन

1. OneTimeWorkRequestBuilder

यह क्या करता है: एक बार के टास्क के लिए रिक्वेस्ट बनाता है। टास्क एक बार एक्जीक्यूट होता है और फिर कतार से हटा दिया जाता है।

पैरामीटर:

  • workerClass (अनिवार्य) — वह क्लास जो Worker या CoroutineWorker से इनहेरिट करती है।
  • setInitialDelay() — एक्जीक्यूशन से पहले देरी (मिलीसेकंड में)।
  • setConstraints() — पाबंदियां (जैसे, इंटरनेट कनेक्शन)।
  • addTag() — टास्क को ग्रुप करने के लिए टैग।
  • setInputData() — Worker के लिए इनपुट डेटा।

उदाहरण:

val request = OneTimeWorkRequestBuilder                    

अनुशंसाएँ