WorkManager

WorkManager API की मदद से, एसिंक्रोनस टास्क को शेड्यूल करना आसान हो जाता है जिसे सही तरीके से चलाया जाना चाहिए. ये एपीआई आपको टास्क बनाने और उसे किसी व्यक्ति को देने की सुविधा देते हैं काम की शर्तें पूरी होने पर इस्तेमाल करने के लिए WorkManager.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
7 अगस्त, 2024 2.9.1 - - 2.10.0-ऐल्फ़ा02

डिपेंडेंसी तय करना

WorkManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने मौजूदा खाते में Google की Maven रिपॉज़िटरी जोड़नी होगी प्रोजेक्ट:

उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको 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")
}

Kotlin एक्सटेंशन का इस्तेमाल करने के बारे में जानकारी के लिए, ktx दस्तावेज़ देखें.

डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ें लेख पढ़ें.

सुझाव

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको नई समस्याओं का पता चलता है या आपको इस लाइब्रेरी को बेहतर बनाने के लिए आइडिया मिल सकते हैं. कृपया, इस मौजूदा समस्याएं इस लाइब्रेरी में जोड़ें. किसी मौजूदा समस्या के लिए अपना वोट दें. इसके लिए ये तरीके अपनाएं: स्टार बटन पर क्लिक करके ऐसा किया जा सकता है.

नई समस्या जोड़ें

समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.

वर्शन 2.10

वर्शन 2.10.0-alpha02

17 अप्रैल, 2024

androidx.work:work-*:2.10.0-alpha02 रिलीज़ हो गया है. वर्शन 2.10.0-alpha02 में ये कमिट मौजूद हैं.

एपीआई में बदलाव

  • WorkManager में कॉन्फ़िगर किए जा सकने वाले @RestrictTo Tracer के ज़रिए, ट्रेस स्पैन उत्सर्जन करने की सुविधा जोड़ी गई. (I17d7f, b/260214125)
  • जहां CoroutineWorker निष्पादित किया जाता है वहां डिस्पैचर के नियंत्रण के लिए Configuration.workerCoroutineContext को में जोड़ा गया था. इससे WorkManager में Dispatchers.Default के इस्तेमाल को पूरी तरह से रोकने में मदद मिलती है. (Icd1b7)
  • वर्कर के लिए, कस्टम अपवाद हैंडलर जोड़ें (Ib1b74, b/261190695)
  • OneTimeWorkRequest.Builder और PeriodicWorkRequest.Builder को अब Class के बजाय KClass का इस्तेमाल करके बनाया जा सकता है: val request = OneTimeWorkRequest.Builder(Worker::class).setConstraints(...).build() (Ib55f6)
  • WorkManager क्लास को Kotlin पर माइग्रेट किया गया. अब LiveData, ListenableFuture या Flow रिटर्न करने वाले तरीकों से, शून्य एट्रिब्यूट की सही जानकारी मिलती है. इसके लिए ग्राहकों के व्यवहार में परिवर्तन करना पड़ सकता है अगर उस कोड में शून्य होने के अनुमान गलत थे. (If6757)

वर्शन 2.10.0-alpha01

24 जनवरी, 2024

androidx.work:work-*:2.10.0-alpha01 रिलीज़ हो गया है. वर्शन 2.10.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • डेवलपर Constraints.setRequiredNetworkRequest तरीके का इस्तेमाल करके, NetworkRequest को कंस्ट्रेंट के तौर पर कंस्ट्रेंट के तौर पर तय कर सकते हैं. इससे, इस वर्कर को किस नेटवर्क पर चलाना है, इसके लिए बेहतर कंट्रोल मिलता है.

एपीआई में बदलाव

  • NetworkRequest को कंस्ट्रेंट के तौर पर बताने की सुविधा जोड़ी जा रही है. (Id98a1, b/280634452)

वर्शन 2.9

वर्शन 2.9.1

7 अगस्त, 2024

androidx.work:work-*:2.9.1 रिलीज़ हो गया है. वर्शन 2.9.1 में ये शर्तें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस क्रैश को ठीक किया गया है जो WorkManager में, लंबे समय तक चलने वाले वर्कर (यानी फ़ोरग्राउंड वर्कर) को रीस्टार्ट करने की वजह से हुआ था. ऐसा तब हुआ, जब फ़ोरग्राउंड टाइप के लिए Android 14 से जुड़ी ज़रूरी अनुमतियां को रद्द कर दिया गया था. (b/333957914)

वर्शन 2.9.0

29 नवंबर, 2023

androidx.work:work-*:2.9.0 रिलीज़ हो गया है. वर्शन 2.9.0 में ये कमियां शामिल हैं.

2.8.0 से अब तक हुए अहम बदलाव

  • Flow-से॰ के ज़रिए निगरानी की सुविधा. LiveData के बजाय, अब प्रोसेसर की प्रोग्रेस को फ़्लो के WorkManager.getWorkInfosFlow और इससे मिलते-जुलते तरीकों से देखा जा सकता है.
  • अब WorkManager इस बात का संकेत देता है कि किसी वर्कर को पहले क्यों रोका गया था. इसके लिए, getStopReason() तरीके का इस्तेमाल करके, कर्मचारी से या getStopReason() की मदद से WorkInfo से क्वेरी की जा सकती है.
  • setNextScheduleTimeOverride के ज़रिए समय-समय पर काम करने वाले लोगों को सटीक तरीके से शेड्यूल करें. इसकी मदद से, तय समय पर होने वाले अगले काम के शेड्यूल का डेटा डाइनैमिक तरीके से कैलकुलेट किया जा सकता है. इसका इस्तेमाल, ज़रूरत के हिसाब से रीफ़्रेश होने का समय, फिर से कोशिश करने के कस्टम तरीके या उपयोगकर्ता के हर सुबह जागने से पहले, बिना ड्रिफ़्ट किए न्यूज़फ़ीड वर्कर को चलाने जैसी बेहतर सुविधाओं को लागू करने के लिए किया जा सकता है. ExistingPeriodicWorkPolicy.UPDATE का इस्तेमाल इन तकनीकों के साथ किया जाना चाहिए, ताकि किसी मौजूदा वर्कर को शेड्यूल करते समय, मौजूदा कर्मचारी को रद्द न किया जा सके.
  • थ्रेडिंग मैचिंग प्रोडक्शन के साथ WorkManager की टेस्टिंग. Configuration में सेट किए गए एक्ज़िक्यूटर को बनाए रखने और असली मुख्य थ्रेड का इस्तेमाल करने के लिए, ExecutorsMode.PRESERVE_EXECUTORS का इस्तेमाल initializeTestWorkManager में किया जा सकता है.
  • CoroutineWorker जैसे कोरूटीन एपीआई को अतिरिक्त आर्टफ़ैक्ट वर्क-रनटाइम-ktx से मुख्य आर्टफ़ैक्ट वर्क-रनटाइम में ले जाया गया है. Work-runtime-ktx अब खाली है.

एपीआई में बदलाव

  • stopReason को WorkInfo में जोड़ा गया. यह वर्कर के चलने के बाद, stopReason उपलब्ध कराता है. यह stopReason की रिपोर्ट करने के लिए उपयोगी हो सकता है, क्योंकि एक बार जब किसी कर्मचारी को रोका जाता है, तो ऐप्लिकेशन अपने-आप तुरंत बंद हो सकता है. (I21386)
  • यह नीति Clock को कॉन्फ़िगरेशन की मदद से सेट करने की अनुमति देती है. साथ ही, इसका इस्तेमाल वर्कर टेस्ट के क्रम को लागू करने के लिए किया जाता है. (Ic586e)
  • ListenableWorker में getStopReason() तरीका जोड़ा गया, जो इस बात का संकेत देता है कि कर्मचारी को क्यों रोका गया था. (I07060)
  • WorkManagerTestInitHelper#closeWorkDatabase() को जोड़ा गया, ताकि लीक हुए संसाधनों के बारे में CloseGuard की चेतावनी से बचा जा सके. (Ia8d49)
  • WorkInfo का कंस्ट्रक्टर अब सार्वजनिक है, जिससे टेस्टिंग में मदद मिल सकती है. (Ia00b6, b/209145335)
  • work-runtime-ktx अब खाली है. CoroutineWorker और Kotlin से जुड़ी अन्य सुविधाएं अब मुख्य वर्क-रनटाइम आर्टफ़ैक्ट में उपलब्ध हैं. (I71a9a)
  • setNextScheduleTimeOverride तरीका जोड़ा गया, जिससे समय-समय पर होने वाले काम के शेड्यूल (I3b4da) की सटीक सेटिंग की जा सकती है
  • शेड्यूल किए गए रन टाइम की जानकारी पाने के लिए, getNextScheduleTimeMillis को WorkInfo में जोड़ा गया. (I797e4)
  • शुरुआती देरी और फ़्रीक्वेंसी की जानकारी, WorkInfo में जोड़ी जाती है. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a) तरीके से फ़्लो के ज़रिए कर्मचारियों को ट्रैक करने का तरीका जोड़ा गया
  • Constraints में वह @RequiresApi(...) एनोटेशन जोड़ा गया जो पहले मौजूद नहीं था कंस्ट्रक्टर और प्रॉपर्टी शामिल हैं. अब इन्हें Constraints.Builder के सेटर पर संबंधित एनोटेशन के साथ अलाइन कर दिया गया है. ये एनोटेशन, WorkManager के पुराने वर्शन में मौजूद थे. (I6d7d2)
  • कॉन्टेंट यूआरआई के लिए, WorkManager में अब एक अलग सीमा लागू की गई है. इसकी मदद से, JobScheduler में कॉन्टेंट अपडेट की गारंटी दी जा सकती है. इससे, कॉन्टेंट अपडेट के लिए बार-बार लोड की ज़रूरत नहीं पड़ती. इस सीमा को Configuration.Builder.setContentUriTriggerWorkersLimit के ज़रिए कॉन्फ़िगर किया जा सकता है. (Ic128f)
  • WorkInfo में कंस्ट्रेंट जोड़ दिए गए हैं. (I162c0)

वर्शन 2.9.0-rc01

18 अक्टूबर, 2023

androidx.work:work-*:2.9.0-rc01 रिलीज़ हो गया है. वर्शन 2.9.0-rc01 में ये कमियां शामिल हैं.

  • पिछली बार बीटा वर्शन रिलीज़ होने के बाद से कोई बदलाव नहीं किया गया है

वर्शन 2.9.0-beta01

6 सितंबर, 2023

androidx.work:work-*:2.9.0-beta01 रिलीज़ हो गया है. वर्शन 2.9.0-beta01 में ये कमिट मौजूद हैं.

एपीआई में बदलाव

वर्शन 2.9.0-alpha02

26 जुलाई, 2023

androidx.work:work-*:2.9.0-alpha02 रिलीज़ हो गया है. वर्शन 2.9.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • अब WorkManager इस बात का संकेत देता है कि किसी वर्कर को पहले क्यों रोका गया था. इसके लिए, getStopReason() तरीके का इस्तेमाल करके, कर्मचारी से या getStopReason() की मदद से WorkInfo से क्वेरी की जा सकती है.

एपीआई में बदलाव

  • stopReason को WorkInfo में जोड़ा गया. यह वर्कर के दौड़ने के बाद stopReason उपलब्ध कराता है. यह stopReason को इस्तेमाल करने लायक तरीके से रिपोर्ट करने में मददगार हो सकता है, क्योंकि एक बार कर्मचारी को रोका जाता है, तो ऐप्लिकेशन अपने-आप तुरंत बंद हो सकता है. (I21386)
  • Clock को कॉन्फ़िगरेशन की मदद से सेट करने और वर्कर टेस्ट के क्रम को लागू करने के लिए इस्तेमाल करने की अनुमति दें. (Ic586e)
  • ListenableWorker में getStopReason() तरीका जोड़ा गया, जो इस बात का संकेत देता है कि कर्मचारी को क्यों रोका गया था. (I07060)
  • WorkManagerTestInitHelper#closeWorkDatabase() को जोड़ा गया, ताकि लीक हुए संसाधनों के बारे में CloseGuard की चेतावनी से बचा जा सके. (Ia8d49)

गड़बड़ियां ठीक की गईं

  • TestDriver का इस्तेमाल करके, overrideNextScheduleTime को बायपास करने की सुविधा जोड़ी गई. साथ ही, जांच करने की क्षमता से जुड़ी समस्याओं को ठीक किया गया. (Ic2905)

वर्शन 2.9.0-alpha01

7 जून, 2023

androidx.work:work-*:2.9.0-alpha01 रिलीज़ हो गया है. वर्शन 2.9.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • Flow-से॰ के ज़रिए निगरानी की सुविधा. LiveData के बजाय, अब प्रोसेसर की प्रोग्रेस को फ़्लो के WorkManager.getWorkInfosFlow और इससे मिलते-जुलते तरीकों से देखा जा सकता है.
  • setNextScheduleTimeOverride के ज़रिए समय-समय पर काम करने वाले लोगों को सटीक तरीके से शेड्यूल करें. इसकी मदद से, तय समय पर होने वाले अगले काम के शेड्यूल का डेटा डाइनैमिक तरीके से कैलकुलेट किया जा सकता है. इसका इस्तेमाल, ज़रूरत के हिसाब से रीफ़्रेश होने का समय, फिर से कोशिश करने के कस्टम तरीके या उपयोगकर्ता के हर सुबह जागने से पहले, बिना ड्रिफ़्ट किए न्यूज़फ़ीड वर्कर को चलाने जैसी बेहतर सुविधाओं को लागू करने के लिए किया जा सकता है. ExistingPeriodicWorkPolicy.UPDATE का इस्तेमाल इन तकनीकों के साथ किया जाना चाहिए, ताकि किसी मौजूदा वर्कर को शेड्यूल करते समय, मौजूदा वर्कर को रद्द न किया जा सके.
  • WorkManager की टेस्टिंग, थ्रेडिंग मैचिंग प्रोडक्शन के साथ की जा रही है. ExecutorsMode.PRESERVE_EXECUTORS का इस्तेमाल, Configuration में सेट किए गए एक्ज़िक्यूटर को बनाए रखने और असली मुख्य थ्रेड का इस्तेमाल करने के लिए किया जा सकता है.
  • CoroutineWorker जैसे कोरूटीन एपीआई को अतिरिक्त आर्टफ़ैक्ट work-runtime-ktx से मुख्य आर्टफ़ैक्ट work-runtime में ले जाया गया है. work-runtime-ktx अब खाली है.

एपीआई में बदलाव

  • WorkInfo का कंस्ट्रक्टर अब सार्वजनिक है, जिससे टेस्टिंग में मदद मिल सकती है. (Ia00b6, b/209145335)
  • work-runtime-ktx अब खाली है. CoroutineWorker और कोटलिन से जुड़ी अन्य सुविधाएं, अब मुख्य work-runtime आर्टफ़ैक्ट में उपलब्ध हैं. (I71a9a)
  • setNextScheduleTimeOverride तरीका जोड़ा गया, जिससे समय-समय पर होने वाले काम के शेड्यूल (I3b4da) की सटीक सेटिंग की जा सकती है
  • getEarliestRunTimeMillis का नाम बदलकर getNextScheduleTimeMillis किया गया. (I2bd7a)
  • शेड्यूल किए गए रनटाइम की अगली जानकारी WorkInfo में जोड़ दी जाती है. (I797e4)
  • शुरुआती देरी और फ़्रीक्वेंसी की जानकारी, WorkInfo में जोड़ी जाती है. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a) तरीके से फ़्लो के ज़रिए कर्मचारियों को ट्रैक करने का तरीका जोड़ा गया
  • Constraints में वह @RequiresApi(...) एनोटेशन जोड़ा गया जो पहले मौजूद नहीं था कंस्ट्रक्टर और प्रॉपर्टी शामिल हैं. अब इन्हें Constraints.Builder के सेटर पर संबंधित एनोटेशन के साथ अलाइन कर दिया गया है. ये एनोटेशन, WorkManager के पुराने वर्शन में मौजूद थे. (I6d7d2)
  • कॉन्टेंट यूआरआई के लिए, WorkManager में अब एक अलग सीमा लागू की गई है. इसकी मदद से, JobScheduler में कॉन्टेंट अपडेट की गारंटी दी जा सकती है. इससे, कॉन्टेंट अपडेट के लिए बार-बार लोड की ज़रूरत नहीं पड़ती. Configuration.Builder.setContentUriTriggerWorkersLimit की मदद से, इस सीमा को कॉन्फ़िगर किया जा सकता है. (Ic128f)
  • WorkInfo में कंस्ट्रेंट जोड़ दिए गए हैं. (I162c0)

वर्शन 2.8

वर्शन 2.8.1

22 मार्च, 2023

androidx.work:work-*:2.8.1 रिलीज़ हो गया है. वर्शन 2.8.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • RescheduleReceiver में ANR वाली उस गड़बड़ी को ठीक किया गया है जो पहले एक साथ दो ब्रॉडकास्ट को सही तरीके से हैंडल नहीं कर पाई थी. (b/236906724)

वर्शन 2.8.0

8 फ़रवरी, 2023

androidx.work:work-*:2.8.0 रिलीज़ हो गया है. वर्शन 2.8.0 में ये कमियां शामिल हैं.

2.7.0 के बाद से हुए अहम बदलाव

नई सुविधाएं

  • बिना रुकावट वाले तरीके से WorkRequests को अपडेट करने की क्षमता जोड़ी गई, जिससे मूल सूची का समय, चेनिंग वगैरह सुरक्षित रहे. इस सुविधा के बारे में ब्यौरे वाला ब्लॉग पोस्ट और ज़्यादा जानकारी के लिए WorkManager.updateWork और ExistingPeriodicWorkPolicy.UPDATE के लिए JavaScript देखें.

एपीआई में बदलाव

  • सूची में लगने वाले मूल समय और चेन को बनाए रखते हुए, काम को अपडेट करने के लिए WorkManager.updateWork को जोड़ा गया.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE को जोड़ा गया. इस नीति के तहत, समय-समय पर किए जाने वाले किसी काम का नाम अपडेट किया जा सकता है. यह मौजूदा REPLACE से मिलता-जुलता है, लेकिन इसमें ज़्यादा रुकावटें नहीं होती हैं: अगर कर्मचारी अभी चल रहा है, तो वह रद्द नहीं होता और इसके लिए कतार में लगने वाला समय सुरक्षित रहता है. शुरुआती देरी और अवधि को अपडेट करने के समय के बजाय, मूल कतार में लगाए जाने के समय से तय किया जाता है. REPLACE और UPDATE के नाम के बीच भ्रम की स्थिति को कम करने के लिए, REPLACE को बंद कर दिया गया था. अगर आपको अब भी REPLACE के पिछले सिमैंटिक को बनाए रखना है, तो नए जोड़े गए CANCEL_AND_REENQUEUE का इस्तेमाल किया जा सकता है, जो REPLACE से मिलता-जुलता है. (I985ed, b/219446409)
  • setSchedulingexceptHandler की मदद से, Consumer<Throwable> देने वाले शेड्यूल के अपवादों को रोकने की सुविधा जोड़ी गई)
  • WorkManager को शुरू करते समय कोई समस्या हुई या नहीं, यह पता लगाने के लिए, setInitializationexceptHandler की मदद से Consumer<Throwable> देने की सुविधा जोड़ी गई.
  • OneTimeWorkRequest और के लिए इनलाइन हेल्पर PeriodicWorkRequest को androidx.work:work-runtime-ktx से androidx.work:work-runtime में ले जाया गया (I0010f, b/209145335)
  • सीधे WorkQuery बनाने के लिए, सहायक तरीकों WorkQuery.fromIds, WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames, WorkQuery.fromTags को जोड़ा गया. (b/199919736) (If48f2, b/199919736)
  • getForegroundInfo को Worker में जोड़ा गया. (Ic1ead)
  • RxJava 2 और RxJava 3, दोनों के लिए RxWorker में अब setForeground Completable है. इसे setForegroundInfoAsync के बजाय, ListenableFuture नतीजे के तौर पर इस्तेमाल किया जा सकता है
  • RxJava 2 और RxJava 3, दोनों के लिए RxWorker में getForegroundInfo से Single मिला. इसका इस्तेमाल, ListenableFuture देने वाले getForegroundInfoAsync के बजाय किया जा सकता है. (b/203851459)
  • अब Constraints.Builder का इस्तेमाल करने के बजाय, कंस्ट्रेंट को सीधे तौर पर बनाया जा सकता है. यह Kotlin के उपयोगकर्ताओं के लिए आसान है. (Idc390, b/137568653)
  • यह देखने की सुविधा जोड़ी गई कि WorkManager शुरू हुआ है या नहीं. साथ ही, लाइब्रेरी डेवलपर के लिए एक नया getConfiguration() एपीआई जोड़ा गया, ताकि WorkManager का कॉन्फ़िगरेशन शुरू किया जा सके. (I6eff3, b/212300336)

गड़बड़ियां ठीक की गईं

  • लालची शेड्यूलर की समस्या को ठीक किया गया, जो लोड होने पर कर्मियों को तुरंत काम करने से रोकती थी. (I9686b, b/248111307)
  • @RequiresPermission को उन एपीआई में जोड़ा गया जिनके लिए SDK टूल 33 और इसके बाद के वर्शन पर, POST_NOTIFICATIONS की अनुमति देना ज़रूरी है. (Ie542e, b/238790278)
  • suspendCancellableCoroutine का इस्तेमाल करते समय, CoroutineScope में रद्द किए गए क्रेडिट को ListenableFuture में लागू करें.

वर्शन 2.8.0-rc01

7 दिसंबर, 2022

androidx.work:work-*:2.8.0-rc01 रिलीज़ हो गया है. वर्शन 2.8.0-rc01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • इस रिलीज़ में कोई नई सुविधा नहीं है. मुख्य रूप से, यह एक वर्शन बंप है

वर्शन 2.8.0-beta02

9 नवंबर, 2022

androidx.work:work-*:2.8.0-beta02 रिलीज़ हो गया है. वर्शन 2.8.0-beta02 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • WorkInfo में equals तरीके को ठीक कर दिया गया है, जो पहले नई जनरेशन की जानकारी को शामिल नहीं करता था. (4977सीसी)

वर्शन 2.8.0-beta01

5 अक्टूबर, 2022

androidx.work:work-*:2.8.0-beta01 रिलीज़ हो गया है. वर्शन 2.8.0-beta01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • लालची शेड्यूलर की समस्या को ठीक किया गया, जो लोड होने पर कर्मियों को तुरंत काम करने से रोकती थी. (I9686b, b/248111307)

वर्शन 2.8.0-alpha04

7 सितंबर, 2022

androidx.work:work-*:2.8.0-alpha04 रिलीज़ हो गया है. वर्शन 2.8.0-alpha04 में ये कमियां हैं.

एपीआई में बदलाव

  • WorkerInfo.getGeneration() और WorkerParameters.getGeneration() जोड़े गए जो एक कर्मचारी की पीढ़ी को वापस लौटाते हैं. अगर किसी वर्कर को WorkManager.updateWork या ExistingPeriodicWorkPolicy.UPDATE का इस्तेमाल करके WorkManager.enqueueUniquePeriodicWork से अपडेट किया गया था, तो वर्कर की एक से ज़्यादा जनरेशन होती है. ध्यान दें कि यदि वर्कर वर्तमान में चल रहा है, तो यदि वर्कर के निष्पादन के दौरान कोई अपडेट हुआ हो, तो इस विधि के लिए वर्तमान में चल रहे वर्कर की नई जनरेशन वापस लौटना संभव है. (I665c5, b/219446409) (I128a9, b/219446409)
  • InitializationExceptionHandler को जोड़ा गया. यह एक अपवाद हैंडलर है जिसका इस्तेमाल यह पता लगाने के लिए किया जा सकता है कि WorkManager को शुरू करते समय कोई समस्या हुई या नहीं. (I061de)

वर्शन 2.8.0-alpha03

10 अगस्त, 2022

androidx.work:work-*:2.8.0-alpha03 रिलीज़ हो गया है. वर्शन 2.8.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • WorkRequests को बिना रुकावट वाले तरीके से अपडेट करने की सुविधा जोड़ी गई. इससे, सूची में शामिल होने का मूल समय सुरक्षित रहेगा और चेन बनाने जैसी सुविधाएं भी जोड़ी गईं. ज़्यादा जानकारी के लिए, WorkManager.updateWork और ExistingPeriodicWorkPolicy.UPDATE पर जाएं.

एपीआई में बदलाव

  • सूची में लगने वाले मूल समय और चेन को बनाए रखते हुए, काम को अपडेट करने के लिए WorkManager.updateWork को जोड़ा गया.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE को जोड़ा गया. यह नीति, समय-समय पर किए जाने वाले काम के नाम को अपडेट करने की अनुमति देती है. यह मौजूदा REPLACE से मिलता-जुलता है, लेकिन इसमें ज़्यादा रुकावटें नहीं होती हैं: अगर कर्मचारी अभी चल रहा है, तो वह रद्द नहीं होता और इसके लिए कतार में लगने वाला समय सुरक्षित रहता है. शुरुआती देरी और अवधि को अपडेट करने के समय के बजाय, मूल कतार में लगाए जाने के समय से तय किया जाता है. REPLACE और UPDATE के नाम के बीच भ्रम की स्थिति को कम करने के लिए, REPLACE को बंद कर दिया गया था. अगर आपको अब भी REPLACE के पिछले सिमैंटिक को बनाए रखना है, तो नए जोड़े गए CANCEL_AND_REENQUEUE का इस्तेमाल किया जा सकता है, जो REPLACE से मिलता-जुलता है. (I985ed, b/219446409)
  • SchedulingExceptionHandler तय करके, शेड्यूलिंग अपवादों को रोकने की सुविधा जोड़ें. (I033eb)
  • OneTimeWorkRequest और के लिए इनलाइन हेल्पर PeriodicWorkRequest को androidx.work:work-runtime-ktx से androidx.work:work-runtime में ले जाया गया (I0010f, b/209145335)

गड़बड़ियां ठीक की गईं

  • @RequiresPermission को उन एपीआई में जोड़ा गया जिनके लिए SDK टूल के वर्शन 33 और इसके बाद के वर्शन पर, POST_NOTIFICATIONS की अनुमति देनी होगी. (Ie542e, b/238790278)

वर्शन 2.8.0-alpha02

6 अप्रैल, 2022

androidx.work:work-*:2.8.0-alpha02 रिलीज़ हो गया है. वर्शन 2.8.0-alpha02 में ये कमियां हैं.

एपीआई में बदलाव

  • अब Builder का इस्तेमाल करने के बजाय, कंस्ट्रेंट को सीधे बनाया जा सकता है. यह Kotlin के उपयोगकर्ताओं के लिए आसान होती है. (Idc390, b/137568653)
  • यह देखने की सुविधा जोड़ी गई कि WorkManager शुरू हुआ है या नहीं. साथ ही, लाइब्रेरी डेवलपर के लिए एक नया getConfiguration() एपीआई जोड़ा गया, ताकि WorkManager का कॉन्फ़िगरेशन शुरू किया जा सके. (I6eff3, b/212300336)

वर्शन 2.8.0-alpha01

12 जनवरी, 2022

androidx.work:work-*:2.8.0-alpha01 रिलीज़ हो गया है. वर्शन 2.8.0-alpha01 में ये कमियां हैं.

एपीआई में बदलाव

  • हेल्पर तरीके WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames, सीधे WorkQuery बनाने के लिए WorkQuery.fromTags जोड़े गए थे. (If48f2, b/199919736)
  • आने वाले समय में इस्तेमाल किए जाने वाले SDK टूल के लिए, BuildCompat के प्रयोग वाले तरीके जोड़े जाते हैं (Iafd82, b/207528937)
  • Worker में getForegroundInfo जोड़ें. (Ic1ead)
  • सीधे आईडी से WorkQuery बनाने के लिए सहायक तरीके WorkQuery.fromIds जोड़े गए थे. (Ie5bdf, b/199919736)
  • अब RxWorker ने setForeground को Completable लौटा दिया है setForegroundInfoAsync की जगह पर इस्तेमाल किया जा सकता है, जो ListenableFuture. (I85156)
  • RxJava 2 के लिए RxWorker में अब getForegroundInfo है, जो Single दिखाएगा getForegroundInfoAsync की जगह पर इस्तेमाल किया जा सकता है, जो ListenableFuture. (I21c91, b/203851459)
  • RxJava 3 के लिए RxWorker में अब getForegroundInfo है, जो Single दिखाएगा getForegroundInfoAsync की जगह पर इस्तेमाल किया जा सकता है, जो ListenableFuture. (I1ca8a)
  • अब RxWorker ने setForeground को Completable लौटा दिया है setForegroundInfoAsync की जगह पर इस्तेमाल किया जा सकता है, जो ListenableFuture. (I992a3, b/203851459)

गड़बड़ियां ठीक की गईं

  • suspendCancellableCoroutine का इस्तेमाल करते समय, CoroutineScope में रद्द किए गए क्रेडिट को ListenableFuture में लागू करें. (I77e63)

वर्शन 2.7

वर्शन 2.7.1

17 नवंबर, 2021

androidx.work:work-*:2.7.1 रिलीज़ हो गया है. वर्शन 2.7.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • suspendCancellableCoroutine का इस्तेमाल करने पर, CoroutineScope में रद्द की गई सदस्यताओं को ListenableFuture में अपने-आप रद्द कर दिया जाता है. (I77e63)
  • जब देरी से काम करने के अनुरोधों को 'प्रोसेसिंग है' के तौर पर मार्क किया जाता है, तो एक अपवाद को तुरंत लागू कर दिया जाता है. बेफ़1762

वर्शन 2.7.0

13 अक्टूबर, 2021

androidx.work:work-*:2.7.0 रिलीज़ हो गया है. वर्शन 2.7.0 में ये कमियां शामिल हैं.

2.6.0 से अब तक हुए अहम बदलाव

  • WorkManager ने Android 12 में फ़ोरग्राउंड सेवा से जुड़ी पाबंदियों में मदद करने के लिए, नया WorkRequest.Builder.setExpedited(...) एपीआई लॉन्च किया है.

  • setExpedited(...) का इस्तेमाल करते समय, WorkManager Android 12 से JobScheduler में तेज़ी से किए जाने वाले जॉब का ऐक्सेस देता है. साथ ही, यह Android के पुराने वर्शन के साथ काम करने की सुविधा देता है. इसके लिए, यह फ़ोरग्राउंड सेवा को असाइन करता है.

वर्शन 2.7.0-rc01

29 सितंबर, 2021

androidx.work:work-*:2.7.0-rc01 रिलीज़ हो गया है. वर्शन 2.7.0-rc01 में ये कमिट हैं.

यह वर्शन, androidx.work:work-*:2.7.0-beta01 के जैसा है.

वर्शन 2.7.0-beta01

1 सितंबर, 2021

androidx.work:work-*:2.7.0-beta01 रिलीज़ हो गया है. वर्शन 2.7.0-beta01 में ये कमिट हैं.

नई सुविधाएं

  • WorkManager को शुरू करते समय, मल्टी-प्रोसेस SQLite कंटिशन को कम करें.

एपीआई में बदलाव

  • @ExperimentalExpeditedWork एपीआई को हटाएं, क्योंकि Android 12 (S) के लिए पहले से मौजूद प्लैटफ़ॉर्म एपीआई स्थिर हैं. (aosp/1792806)

गड़बड़ियां ठीक की गईं

  • जल्द से जल्द काम करने वाले ऐसे कर्मचारियों के लिए गड़बड़ी का बेहतर मैसेज दें जो getForegroundInfoAsync() को लागू नहीं करते. (aosp/1809376)

वर्शन 2.7.0-alpha05

21 जुलाई, 2021

androidx.work:work-*:2.7.0-alpha05 रिलीज़ हो गया है. वर्शन 2.7.0-alpha05 में ये कमियां हैं.

इस रिलीज़ में WorkManager 2.6.0-beta02 रिलीज़ की गड़बड़ियां भी ठीक की गई हैं.

वर्शन 2.7.0-alpha04

2 जून, 2021

androidx.work:work-*:2.7.0-alpha04 रिलीज़ हो गया है.

इस रिलीज़ में 2.6.0-beta01 रिलीज़ के बदलाव भी शामिल हैं.

एपीआई में बदलाव

गड़बड़ियां ठीक की गईं

  • जब तेज़ प्रोसेस वाले कामों को फिर से शेड्यूल किया जाता है, तब वे जल्दी डिलीवर नहीं होते. वे सामान्य काम बन जाते हैं.

वर्शन 2.7.0-alpha03

21 अप्रैल, 2021

androidx.work:work-*:2.7.0-alpha03 रिलीज़ हो गया है. वर्शन 2.7.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager 2.6.0-alpha02 की ओर से: ऐसे कर्मचारियों के लिए सहायता जोड़ता है जो किसी भी प्रोसेस में काम कर सकते हैं. (Iaf200)

  • WorkManager 2.6.0-alpha02 से: एक RemoteCoroutineWorker जोड़ा गया है, जो RemoteListenableWorker को लागू करने की प्रोसेस है, जो किसी रिमोट प्रोसेस से बाइंड कर सकता है. (I30578)

एपीआई में बदलाव

  • WorkManager 2.6.0-alpha02 की ओर से:TEMPORARILY_UNMETERED नेटवर्क कंस्ट्रेंट के लिए सहायता जोड़ी गई. (I08d5e)
  • WorkManager 2.6.0-alpha02 की ओर से:setProgressAsync() के लिए, एक से ज़्यादा प्रोसेस करने वाले वर्कर से जुड़ी सहायता. (Ib6d08)
  • WorkManager 2.6.0-alpha02 से:WorkManagerInitializer को सार्वजनिक करें, ताकि दूसरे androidx.startup.Initializer इनका इस्तेमाल डिपेंडेंसी के तौर पर कर सकें. (I5ab11)

वर्शन 2.7.0-alpha02

10 मार्च, 2021

androidx.work:work-*:2.7.0-alpha02 रिलीज़ हो गया है. वर्शन 2.7.0-alpha02 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • Android 12 को टारगेट करते समय क्रैश की समस्या को ठीक करने के लिए, PendingIntent म्यूटेबिलिटी के बारे में साफ़ तौर पर जानकारी दें. (b/180884673)

वर्शन 2.7.0-alpha01

18 फ़रवरी, 2021

androidx.work:work-*:2.7.0-alpha01 रिलीज़ हो गया है. वर्शन 2.7.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager ने Android 12 में फ़ोरग्राउंड सेवा से जुड़ी पाबंदियों को ध्यान में रखते हुए, एक नया WorkRequest.Builder.setExpedited(...) एपीआई लॉन्च किया है.

    ऐप्लिकेशन के बैकग्राउंड में होने पर, अब फ़ोरग्राउंड सेवा को लॉन्च नहीं किया जा सकता. इसलिए, लंबे समय तक चलने वाले ऐसे काम के लिए बेहतर सुविधाएं देने के लिए जो पहले फ़ोरग्राउंड सेवा के लाइफ़साइकल के हिसाब से थे, ऐप्लिकेशन WorkRequests को expedited के तौर पर मार्क कर सकते हैं.

    यह एपीआई, setForegroundAsync(...) / setForeground(...) एपीआई की जगह इस्तेमाल किया जा सकता है. इन एपीआई का अब इस्तेमाल नहीं किया जा सकता.

    setExpedited(...) का इस्तेमाल करते समय, WorkManager Android 12 से JobScheduler में तेज़ी से काम करने वाले टास्क का ऐक्सेस देता है. साथ ही, यह Android के पिछले वर्शन पर पुराने सिस्टम के साथ काम करने की सुविधा देता है. ऐसा करने के लिए, यह ऐप्लिकेशन को फ़ोरग्राउंड सेवाओं का ऐक्सेस देना होता है.

एपीआई में बदलाव

  • तेज़ स्पीड वाले WorkRequest के लिए सहायता जोड़ें.

वर्शन 2.6.0

वर्शन 2.6.0

1 सितंबर, 2021

androidx.work:work-*:2.6.0 रिलीज़ हो गया है. वर्शन 2.6.0 में ये कमियां शामिल हैं.

2.5.0 के बाद के अहम बदलाव

  • अब WorkManager, WorkManager को शुरू करने के लिए androidx.startup का इस्तेमाल करता है. अगर आपने पहले कभी WorkManager को शुरू करने के लिए, tools:node="remove" ContentProvider का इस्तेमाल किया था, तो आपको ये काम करने होंगे.

    <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities=\"${applicationId}.androidx-startup"
        android:exported="false"
        tools:node=\"merge">
        <!-- If you are using androidx.startup to initialize other components -->
        <meta-data
            android:name="androidx.work.WorkManagerInitializer"
            android:value="androidx.startup"
            tools:node="remove" />
     </provider>
    
    <!-- If you want to disable android.startup completely. -->
     <provider
                android:name="androidx.startup.InitializationProvider"
                android:authorities="${applicationId}.androidx-startup"
                tools:node="remove" />
    
  • कर्मचारियों के लिए अतिरिक्त सहायता जो किसी भी प्रक्रिया में चल सकती है. (Iaf200)

  • एक RemoteCoroutineWorker जोड़ा गया, जो RemoteListenableWorker को लागू करता है. यह रिमोट प्रोसेस से बाइंड कर सकता है. (I30578)

वर्शन 2.6.0-rc01

4 अगस्त, 2021

androidx.work:work-*:2.6.0-rc01 रिलीज़ हो गया है. वर्शन 2.6.0-rc01 में ये कमिट हैं.

यह वर्शन, androidx.work:work-*:2.6.0-beta02 के जैसा है.

वर्शन 2.6.0-beta02

21 जुलाई, 2021

androidx.work:work-*:2.6.0-beta02 रिलीज़ हो गया है. वर्शन 2.6.0-beta02 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • RemoteWorkManager अब RemoteWorkManagerService से सही तरीके से अनबाइंड हो गया है. यह RemoteWorkManagerService को सही तरीके से क्लीनअप करने में मदद करता है. एओएसपी/1730694
  • RemoteListenableWorker अब RemoteWorkerService से सही तरीके से अनबाइंड हो गया है. यह RemoteWorkerService को सही तरीके से क्लीनअप करने में मदद करता है. एओएसपी/1743817
  • ForceStopRunnable अब सिर्फ़ ऐप्लिकेशन की मुख्य प्रोसेस में चलता है. यह एक ऑप्टिमाइज़ेशन है. साथ ही, एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, संसाधन के विवाद से बचाता है. aosp/1749180, aosp/1761729

वर्शन 2.6.0-beta01

2 जून, 2021

androidx.work:work-*:2.6.0-beta01 रिलीज़ हो गया है. वर्शन 2.6.0-beta01 में ये कमिट हैं.

इस रिलीज़ में, दस्तावेज़ से जुड़े कुछ छोटे-मोटे सुधार किए गए हैं. यह रिलीज़ काफ़ी हद तक 2.6.0-alpha02 की तरह है.

वर्शन 2.6.0-alpha02

21 अप्रैल, 2021

androidx.work:work-*:2.6.0-alpha02 रिलीज़ हो गया है. वर्शन 2.6.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • ऐसे कर्मचारियों के लिए समर्थन जोड़ता है जो किसी भी प्रक्रिया में चल सकते हैं. (Iaf200)

  • एक RemoteCoroutineWorker जोड़ा गया, जो RemoteListenableWorker को लागू करने की प्रोसेस है, जो किसी रिमोट प्रोसेस से बाइंड कर सकती है. (I30578)

एपीआई में बदलाव

  • TEMPORARILY_UNMETERED नेटवर्क कंस्ट्रेंट के लिए सहायता जोड़ी गई. (I08d5e)
  • setProgressAsync() के लिए मल्टी-प्रोसेस वर्कर सहायता. (Ib6d08)
  • WorkManagerInitializer को सार्वजनिक बनाएं, ताकि दूसरे androidx.startup.Initializer इनका इस्तेमाल डिपेंडेंसी के तौर पर कर सकें. (I5ab11)

वर्शन 2.6.0-alpha01

24 मार्च, 2021

androidx.work:work-*:2.6.0-alpha01 रिलीज़ हो गया है. वर्शन 2.6.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager, अब WorkManager को शुरू करने के लिए androidx.startup का इस्तेमाल करता है. पहले, यह काम androidx.work.impl.WorkManagerInitializer करता था. (aosp/1608813)

    अगर आपने tools:node="remove" का इस्तेमाल किया है, तो ContentProvider का इस्तेमाल करके शुरू किया जा रहा है प्रोसेस की पिछली लाइफ़साइकल तय होती है, तो आपको नीचे दिए गए काम करने होंगे.

     <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities=\"${applicationId}.androidx-startup"
        android:exported="false"
        tools:node=\"merge">
        <!-- If you are using androidx.startup to initialize other components -->
        <meta-data
            android:name="androidx.work.impl.WorkManagerInitializer"
            android:value="androidx.startup"
            tools:node="remove" />
     </provider>
    

    (या)

     <!-- If you want to disable android.startup completely. -->
     <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities="${applicationId}.androidx-startup"
        tools:node="remove">
     </provider>
    

एपीआई में बदलाव

  • कोई Result.getOutputData() एपीआई जोड़ें, जो AudibleWorker के outputData को दिखाता है. (Ie51e3)

गड़बड़ियां ठीक की गईं

  • किसी OEM गड़बड़ी का कोई समाधान जोड़ें, जिसकी वजह से AlarmManager API का इस्तेमाल करते समय SecurityException हो जाता है. (aosp/1587518)

वर्शन 2.5.0

वर्शन 2.5.0

27 जनवरी, 2021

androidx.work:work-*:2.5.0 रिलीज़ हो गया है. वर्शन 2.5.0 में ये कमियां शामिल हैं.

2.4.0 से हुए बड़े बदलाव

  • ऐसे ऐप्लिकेशन के लिए एक नया :work:work-multiprocess आर्टफ़ैक्ट जो कई प्रोसेस का इस्तेमाल करते हैं. इसकी वजह से, काम के अनुरोध को शेड्यूल करने की प्रोसेस को एक ही प्रोसेस पर करने से परफ़ॉर्मेंस बेहतर होती है.
    • work-multiprocess का इस्तेमाल करने के लिए, इन पर डिपेंडेंसी तय करें: implementation "androidx.work:work-multiprocess:2.5.0"
    • Configuration.Builder.setDefaultProcessName(String) का इस्तेमाल करके, मुख्य प्रोसेस तय करें.
    • work-multiprocess का इस्तेमाल करते समय अपने WorkRequest को मैनेज करने के लिए, आपको RemoteWorkManager का भी इस्तेमाल किया जा सकता है. RemoteWorkManager हमेशा तय की गई प्रोसेस से संपर्क करता है. इन-प्रोसेस शेड्यूलर भी तय की गई प्रोसेस में चलता है.
  • कभी-कभी, ActivityManager कोई काम शुरू करने के लिए, JobService इंस्टेंस को इंस्टैंशिएट नहीं कर सकता. इस वजह से, प्लैटफ़ॉर्म में गड़बड़ी की वजह से जॉब छूट जाता है. अब WorkManager यह पक्का करता है कि जॉब का मिलान करके Application को शुरू करने पर, हर WorkRequest के लिए बैकिंग जॉब मौजूद हों. इससे नौकरी के ज़्यादा मौके मिलते हैं. (b/172475041, aosp/1489577)
  • WorkManager, WorkRequest के पूरा होने के बाद WorkRequest को ट्रैक किए जाने वाले बफ़र की अवधि को कम करके, डेटाबेस की बढ़ोतरी को सीमित करता है. इसकी अवधि पहले 7 दिन थी. इस अवधि को घटाकर 1 दिन और keepresultsForAtLeast की अवधि कर दी गई है. (aosp/1419708)
  • TestListenableWorkerBuilder अब जांच को आसान बनाने के लिए सुधारी गई क्लास के साथ काम करता है, जो ListenableWorker तक बढ़ाया जा सकता है. (aosp/1443299, b/169787349)
  • Android Studio Arctic Fox का इस्तेमाल करते समय, अब WorkManager इंस्पेक्टर की सुविधा उपलब्ध है.

वर्शन 2.5.0-rc01

13 जनवरी, 2021

androidx.work:work-*:2.5.0-rc01 रिलीज़ हो गया है. वर्शन 2.5.0-rc01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • WorkQuery पर आधारित एपीआई का इस्तेमाल करते समय, इकाइयों के अपडेट होने के बाद getWorkInfosLiveData के अमान्य होने की गड़बड़ी को ठीक किया गया है. (aosp/1540566, b/173769028)
  • उस बग को ठीक किया गया है जहां कुछ दुर्लभ मामलों में डेटाबेस लेन-देन को सफल के रूप में मार्क नहीं किया जा रहा था. इससे कुछ Motorola डिवाइसों में समस्याएं आ रही हैं. (aosp/1535368, b/175944460)
  • इस्तेमाल न होने वाली प्रोसेस से बाइंड होने की कोशिश करते समय, NoSuchElementException को अनदेखा करने के लिए, गड़बड़ी को ठीक किया गया. (aosp/1530589)
  • अगर ListenableWorker को पहले से नहीं रोका गया है, तो सिर्फ़ उसे रोकने के लिए, ConstraintTrackingWorker को बेहतर बनाएं. (aosp/1496844, b/172946965)
  • Java 8 (Ibd2f2) को टारगेट करने के लिए, androidx.work लाइब्रेरी को अपडेट करें

वर्शन 2.5.0-beta02

2 दिसंबर, 2020

androidx.work:work-*:2.5.0-beta02 रिलीज़ हो गया है. वर्शन 2.5.0-beta02 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • androidx.work:work-multiprocess में गड़बड़ी को ठीक किया गया है. इसकी वजह से, तय की गई प्रोसेस से बाइंड करने की कोशिश करते समय, WorkManager ने गलती से कॉलिंग थ्रेड ब्लॉक कर दी थी. (aosp/1475538)
  • गड़बड़ी को ठीक किया गया है, जहां PeriodicWorkRequest का समाधान सही तरीके से नहीं हो रहा था. (b/172475041, aosp/1489577)
  • setForeground* API का इस्तेमाल करते समय, फ़ोरग्राउंड सेवा को बंद करते समय, प्लैटफ़ॉर्म की गड़बड़ी के लिए समाधान जोड़ा गया. (b/170924044, aosp/1489901)

वर्शन 2.5.0-beta01

28 अक्टूबर, 2020

androidx.work:work-*:2.5.0-beta01 रिलीज़ हो गया है. वर्शन 2.5.0-beta01 में ये कमिट हैं.

नई सुविधाएं

  • WorkManager उन WorkRequest की संख्या को अपने-आप थ्रॉटल कर देता है जिन्हें प्रोसेस में मौजूद शेड्यूलर, पिक अप कर सकता है. अनुरोधों पर अब भी एफ़आईएफ़ओ के हिसाब से कार्रवाई की जाती है. (aosp/1455228)
  • ऐप्लिकेशन का डेटास्टोर खराब स्थिति में होने पर, WorkManager रिकवरी की कोशिश करता है. (aosp/1463103)

गड़बड़ियां ठीक की गईं

  • जब ListenableWorker में रुकावट आती है, तो उन्हें तुरंत ENQUEUED के तौर पर मार्क करें, ताकि बाद में उन्हें फिर से शेड्यूल किया जा सके. (aosp/1455618, b/170273988)

वर्शन 2.5.0-alpha03

14 अक्टूबर, 2020

androidx.work:work-*:2.5.0-alpha03 रिलीज़ हो गया है. वर्शन 2.5.0-alpha03 में ये कमियां हैं.

एपीआई में बदलाव

  • TestListenableWorkerBuilder और TestWorkerBuilder, रॉ टाइप का इस्तेमाल नहीं करते. (I883ad, b/169787349)

गड़बड़ियां ठीक की गईं

  • ऐप्लिकेशन की डिफ़ॉल्ट प्रोसेस का नाम तय करने के लिए, ApplicationInfo का इस्तेमाल करें. (b/168716641, aosp/1429950)
  • RemoteWorkManager और RemoteWorkContinuation के लिए, 'किसको दिखे' सेटिंग से जुड़े नियम ठीक करें. इन एपीआई को अब @Restricted के तौर पर मार्क नहीं किया गया है. (aosp/1432091)
  • :work:work-multiprocess के लिए ProGuard के नियम ठीक करें. (aosp/1432091)
  • फ़ोरग्राउंड सेवा से जुड़े, लंबे समय तक चलने वाले काम के लिए, सूचनाओं की लाइफ़साइकल को बेहतर बनाएं. (b/168502234, aosp/1431331)

वर्शन 2.5.0-alpha02

16 सितंबर, 2020

androidx.work:work-*:2.5.0-alpha02 रिलीज़ हो गया है. वर्शन 2.5.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • id का इस्तेमाल करके WorkInfo से क्वेरी करने के लिए, WorkQuery में कोई एपीआई जोड़ें. (aosp/1412372, b/157335295)
  • WorkManager उन ऐप्लिकेशन के साथ बेहतर तरीके से काम करता है जो नए आर्टफ़ैक्ट (androidx.work:work-multiprocess:*) के साथ कई प्रोसेस का इस्तेमाल करते हैं. यह नया आर्टफ़ैक्ट कुछ समस्याओं को हल करने में मदद करता है, जो बड़े ऐप्लिकेशन के सामने आती हैं. इनमें ये समस्याएं शामिल हैं:
    • आम तौर पर, ऐप्लिकेशन के हर प्रोसेस में WorkManager को शुरू किया जाना चाहिए. यह ठीक नहीं है, क्योंकि SQLite पर विवाद बढ़ गया है. इसकी वजह से अन्य समस्याएं हो सकती हैं. WorkManager में अब नए एपीआई उपलब्ध कराए गए हैं. इनका इस्तेमाल Configuration#setDefaultProcessName(processName) का इस्तेमाल करके, ऐप्लिकेशन की मुख्य प्रोसेस तय करने के लिए किया जा सकता है. processName, पूरी तरह क्वालिफ़ाइड प्रोसेस का नाम है, जो packageName:processName की तरह दिखता है (उदाहरण के लिए, com.example:remote).
    • नए एपीआई का सेट: RemoteWorkManager और RemoteWorkContinuation से enqueue, cancel, और query काम के अनुरोध. एक से ज़्यादा प्रोसेस में SQLite के विवाद से बचने के लिए, इन एपीआई में LiveData वैरिएंट शामिल नहीं हैं. enqueue, cancel, और query पर किए जाने वाले सभी कॉल, एआईडीएल का इस्तेमाल करके primary ऐप्लिकेशन प्रोसेस पर फ़ॉरवर्ड किए जाते हैं और ListenableFuture बेहतर तरीके से दिए जाते हैं. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)

एपीआई में बदलाव

  • WorkManager अब पूरे हो चुके WorkRequest डिवाइसों की काट-छांट करता है. हालांकि, इसके लिए ज़रूरी है कि उन पर पूरी तरह से निर्भर नहीं हैं. बफ़र की अवधि को 7 दिन से बदलकर 1 दिन किया गया. (aosp/1419708)

गड़बड़ियां ठीक की गईं

  • WorkManager अब जॉब का मिलान अपने-आप करता है, ताकि WorkManager को शुरू करने पर, WorkRequest और JobScheduler जॉब सिंक में रहें. (aosp/1412794, b/166292069)

वर्शन 2.5.0-alpha01

19 अगस्त, 2020

androidx.work:work-*:2.5.0-alpha01 रिलीज़ हो गया है. वर्शन 2.5.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • इंटरनल एपीआई में बदलाव. इनसे हम आने वाले समय में, WorkManager के साथ बेहतर टूल का इस्तेमाल कर पाएंगे. ज़्यादा अपडेट पाने के लिए हमारे साथ बने रहें.

गड़बड़ियां ठीक की गईं

  • कुछ डिवाइसों पर नेटवर्क की स्थिति को ट्रैक करते समय, SecurityException हैंडल करता है. (aosp/1396969)

बाहरी योगदान

  • Zac Sweers (github/43) के ArrayCreatingInputMerger के दस्तावेज़ ठीक करें.

वर्शन 2.4.0

वर्शन 2.4.0

22 जुलाई, 2020

androidx.work:work-*:2.4.0 रिलीज़ हो गया है. वर्शन 2.4.0 में ये कमियां शामिल हैं.

2.3.0 से अब तक के बड़े बदलाव

  • WorkManager का इन-प्रोसेस शेड्यूलर अब पहले से बेहतर हो गया है. पहले, इन-प्रोसेस Scheduler में सिर्फ़ उस काम को लागू करने पर विचार किया जाता था जिसमें देरी नहीं होती और जिसकी शर्तें पूरी होती थीं. अब, इन-प्रोसेस शेड्यूलर, WorkRequest को ट्रैक करता है, जिसे आने वाले समय में एक्ज़ीक्यूट किया जा सकता है. इसमें AftericWorkRequests शामिल हैं. प्रोसेस में चल रही Scheduler, शेड्यूल करने की सीमाओं का पालन नहीं करती. हालांकि, यह अब भी WorkManager की ओर से इस्तेमाल किए जा रहे Executor के साइज़ तक सीमित है. इसका मतलब यह है कि जब ऐप्लिकेशन फ़ोरग्राउंड में होता है, तो वह ऐप्लिकेशन अब काफ़ी ज़्यादा WorkRequests एक्ज़ीक्यूट कर सकता है. फ़ोरग्राउंड में, देर से होने वाले काम को मैनेज करने के लिए, WorkManager में नया कॉन्फ़िगर किया जा सकने वाला नया RunnableScheduler भी लॉन्च किया गया है. (aosp/1185778)
  • WorkManager अब RxJava 3 वर्शन के साथ काम करता है. RxJava 3 का इस्तेमाल करने के लिए, आपको यह डिपेंडेंसी शामिल करनी चाहिए: implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904)
  • WorkQuery का इस्तेमाल करके, WorkInfo के लिए क्वेरी करने की सुविधा जोड़ी गई. यह तब काम आता है, जब डेवलपर एक से ज़्यादा एट्रिब्यूट को मिलाकर WorkInfo के बारे में क्वेरी करना चाहते हैं. ज़्यादा जानकारी के लिए WorkQuery.Builder.fromStates(...), WorkQuery.Builder. fromTags(...) या WorkQuery.Builder.fromUniqueWorkNames(...) देखें. (aosp/1253230, b/143847546)
  • इसका इस्तेमाल करके WorkManager से गड़बड़ी की जानकारी का अनुरोध करने की सुविधा जोड़ें:

    adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
    

    इससे आपको कई ज़रूरी जानकारी मिलती है. जैसे:

    • पिछले 24 घंटों में पूरे किए गए WorkRequest.
    • ऐसे WorkRequest जो अभी चल रहे हैं.
    • शेड्यूल किए गए WorkRequests. (aosp/1235501)
  • APPEND से मिलता-जुलता ExistingWorkPolicy.APPEND_OR_REPLACE जोड़ें. हालांकि, यह उस चेन को बदल देता है जिसकी ज़रूरी शर्तें रद्द कर दी गई हैं या जो पूरी नहीं हो सकी. (b/134613984, aosp/1199640)

  • WorkRequests को ट्रैक करने के लिए, पसंद के मुताबिक RunnableScheduler जोड़ने की सुविधा दें, जिन्हें आने वाले समय में एक्ज़ीक्यूट करना ज़रूरी है. इसका इस्तेमाल, प्रोसेस में चल रहा शेड्यूलर करता है. (aosp/1203944)

  • DelegatingWorkerFactory का इस्तेमाल करते समय, डेलिगेट के लिए डाइनैमिक तौर पर फ़ैक्ट्री जोड़ने के लिए सहायता जोड़ें. (b/156289105, aosp/1309745)

  • BATTERY_NOT_LOW कंस्ट्रेंट के लिए ट्रैकिंग को प्लैटफ़ॉर्म के साथ ज़्यादा बारीकी से अलाइन करें. (aosp/1312583)

  • इन-प्रोसेस शेड्यूलर, अब प्रोसेस का नाम तय करने के लिए बेहतर एपीआई का इस्तेमाल करता है. यह एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन के लिए बेहतर तरीके से काम करता है. (aosp/1324732)

  • लिंट के नए नियम:

    • setForegroundAsync() एपीआई का इस्तेमाल करते समय सही foregroundServiceType का इस्तेमाल. (b/147873061, aosp/1215915)
    • JobScheduler आईडी तय करना, जिन्हें WorkManager को सीधे JobService API का इस्तेमाल करते समय इस्तेमाल करना चाहिए. एओएसपी/1223567
    • एक नया लिंट नियम जोड़ा गया, जो यह पक्का करता है कि डिफ़ॉल्ट WorkerFactory का इस्तेमाल करने पर ListenableWorkerलागू करने की सुविधा अब public हो गई है. (aosp/1291262)
  • setForegroundAsync() पर किए जाने वाले ऐसे कॉल जो ListenableWorker के पूरा होने से पहले पूरे नहीं होते उन्हें अब वापस आने वाले ListenableFuture पर IllegalStateException के ज़रिए सिग्नल भेजा जाएगा. (aosp/1262743)

  • फ़ोरग्राउंड Worker में आने वाली रुकावट के बाद भी ForegroundService को बंद न होने से जुड़ी गड़बड़ी को ठीक करें. (b/155579898, aosp/1302153)

  • वह बग ठीक करें जहां WorkManager फ़ोरग्राउंड सेवा (b/156310133 से जुड़े Worker के एक से ज़्यादा इंस्टेंस को चलाने की कोशिश करता है, aosp/1309853)

वर्शन 2.4.0-rc01

24 जून, 2020

androidx.work:work-*:2.4.0-rc01 रिलीज़ हो गया है. वर्शन 2.4.0-rc01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • इन-प्रोसेस शेड्यूलर, अब प्रोसेस का नाम तय करने के लिए बेहतर एपीआई का इस्तेमाल करता है. यह एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन के लिए बेहतर तरीके से काम करता है. (aosp/1324732)

वर्शन 2.4.0-beta01

20 मई, 2020

androidx.work:work-gcm:2.4.0-beta01, androidx.work:work-runtime:2.4.0-beta01, androidx.work:work-runtime-ktx:2.4.0-beta01, androidx.work:work-rxjava2:2.4.0-beta01, और androidx.work:work-testing:2.4.0-beta01 रिलीज़ हुए हैं. वर्शन 2.4.0-beta01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • फ़ोरग्राउंड Worker में आने वाली रुकावट के बाद भी ForegroundService को बंद न होने से जुड़ी गड़बड़ी को ठीक करें. (b/155579898, aosp/1302153)
  • उस गड़बड़ी को ठीक करें जहां WorkManager, फ़ोरग्राउंड सेवा (b/156310133, aosp/1309853) से जुड़े Worker के एक से ज़्यादा इंस्टेंस लागू करने की कोशिश करता है
  • DelegatingWorkerFactory का इस्तेमाल करते समय, डेलिगेट के लिए डाइनैमिक तौर पर फ़ैक्ट्री जोड़ने के लिए सहायता जोड़ें. (b/156289105, aosp/1309745)
  • BATTERY_NOT_LOW कंस्ट्रेंट के लिए ट्रैकिंग को प्लैटफ़ॉर्म के साथ ज़्यादा बारीकी से अलाइन करें. (aosp/1312583)

वर्शन 2.4.0-alpha03

29 अप्रैल, 2020

androidx.work:work-*:2.4.0-alpha03 रिलीज़ हो गया है. वर्शन 2.4.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager अब RxJava 3 वर्शन के साथ काम करता है. RxJava 3 का इस्तेमाल करने के लिए, आपको यह डिपेंडेंसी शामिल करनी चाहिए: implementation "androidx.work:work-rxjava3:2.4.0-alpha03". (aosp/1277904)
  • एक नया लिंट नियम जोड़ा गया, जो यह पक्का करता है कि डिफ़ॉल्ट WorkerFactory का इस्तेमाल करने पर ListenableWorkerलागू करने की सुविधा अब public हो गई है. (aosp/1291262)

एपीआई में बदलाव

  • ListenableWorker के एक्ज़ीक्यूशन पूरा होने के बाद, setProgressAsync() को कॉल करने पर, ListenableFuture के ज़रिए Exception को सिग्नल भेजा जाएगा. (aosp/1285494)
  • WorkQuery.Builder को अब final के तौर पर मार्क कर दिया गया है. (aosp/1275037)
  • WorkQuery.Builder फ़ैक्ट्री तरीकों withStates, withTags, और withUniqueWorkNames का नाम बदलकर, fromStates, fromTags, और fromUniqueWorkNames हो गया है. (aosp/1280287)

गड़बड़ियां ठीक की गईं

  • किसी डिवाइस के नेटवर्क की स्थिति को ट्रैक करते समय, SecurityException को अनदेखा करें. (b/153246136, aosp/1280813)

वर्शन 2.4.0-alpha02

1 अप्रैल, 2020

androidx.work:work-*:2.4.0-alpha02 रिलीज़ हो गया है. वर्शन 2.4.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • एक नया लिंट नियम जोड़ा गया, जो WorkRequest के लिए Constraints.setRequiresCharging(...) और Constraints.setRequiresDeviceIdle(...), दोनों की ज़रूरत होने पर चेतावनी देता है. कुछ डिवाइस कभी भी चार्ज नहीं होते और एक ही समय पर इस्तेमाल में नहीं होते. इसलिए, ऐसे अनुरोध उम्मीद से कम बार चलेंगे. (aosp/1253840)

एपीआई में बदलाव

  • WorkQuery का इस्तेमाल करके, WorkInfo के लिए क्वेरी करने की सुविधा जोड़ी गई. यह तब काम आता है, जब डेवलपर एक से ज़्यादा एट्रिब्यूट को मिलाकर WorkInfo के बारे में क्वेरी करना चाहते हैं. ज़्यादा जानकारी के लिए WorkQuery.Builder withStates(...), WorkQuery.Builder withTags(...) या WorkQuery.Builder withUniqueWorkNames(...) देखें. (aosp/1253230, b/143847546)

  • setForegroundAsync() पर किए जाने वाले ऐसे कॉल जो ListenableWorker के पूरा होने से पहले पूरे नहीं होते उन्हें अब वापस आने वाले ListenableFuture पर IllegalStateException के ज़रिए सिग्नल भेजा जाएगा. (aosp/1262743)

गड़बड़ियां ठीक की गईं

  • लिंट नियम को ठीक किया गया, जो PeriodicWorkRequest के लिए अमान्य अंतराल की अवधियों की जांच करता है. (aosp/1254846, b/152606442)

वर्शन 2.4.0-alpha01

4 मार्च, 2020

androidx.work:work-*:2.4.0-alpha01 रिलीज़ हो गया है. वर्शन 2.4.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager का इन-प्रोसेस शेड्यूलर अब पहले से बेहतर हो गया है. पहले, इन-प्रोसेस शेड्यूलर सिर्फ़ उस काम को लागू करने पर विचार करता था जिसमें देरी नहीं होती थी और जिसकी शर्तें पूरी होती थीं. अब इन-प्रोसेस शेड्यूलर, WorkRequest को ट्रैक करता है, जिन्हें आने वाले समय में एक्ज़ीक्यूट किया जा सकता है. इसमें PeriodicWorkRequest भी शामिल हैं. प्रोसेस में है शेड्यूलर, शेड्यूलिंग की सीमाओं का पालन नहीं करता. हालांकि, यह अब भी WorkManager की ओर से इस्तेमाल किए जा रहे Executor के साइज़ तक सीमित है. इसका मतलब है कि अगर ऐप्लिकेशन फ़ोरग्राउंड में है, तो वह अब बहुत ज़्यादा WorkRequest एक्ज़ीक्यूट कर सकता है. (aosp/1185778)

  • adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>" का इस्तेमाल करके, WorkManager से गड़बड़ी की जानकारी का अनुरोध करने की सुविधा जोड़ी गई. इससे आपको कई ज़रूरी जानकारी मिलती है. जैसे:

    • पिछले 24 घंटों में पूरे किए गए WorkRequest.
    • ऐसे WorkRequest जो अभी चल रहे हैं.
    • शेड्यूल किए गए WorkRequests. (aosp/1235501)
  • लिंट के नए नियम:

    • setForegroundAsync() एपीआई का इस्तेमाल करते समय सही foregroundServiceType का इस्तेमाल. (b/147873061, aosp/1215915)
    • JobScheduler आईडी तय किए जा रहे हैं, जिनका इस्तेमाल WorkManager को सीधे JobService एपीआई का इस्तेमाल करते समय करना चाहिए. (aosp/1223567)

एपीआई में बदलाव

  • APPEND से मिलता-जुलता ExistingWorkPolicy.APPEND_OR_REPLACE जोड़ें. हालांकि, उस चेन को बदल दिया है जिसकी ज़रूरी शर्तें रद्द हो गई हैं या जो पूरी नहीं हो सकी. (b/134613984, aosp/1199640)

  • आने वाले समय में लागू किए जाने वाले WorkRequest को ट्रैक करने के लिए, पसंद के मुताबिक RunnableScheduler जोड़ने की सुविधा दें. इसका इस्तेमाल, प्रोसेस में चल रहा शेड्यूलर करता है. (aosp/1203944)

गड़बड़ियां ठीक की गईं

  • RxWorker में setProgress() अब काम नहीं करता, क्योंकि इससे पहले Single<Void> मिला था, जो नामुमकिन है. नया एपीआई setCompletableProgress() जोड़ा गया, जो इसके बजाय Completable दिखाता है; साथ ही, हमने Lit के नए नियम जोड़े हैं. इनसे नए एपीआई पर माइग्रेट करने में मदद मिलती है. (b/150080946, aosp/1242665)

वर्शन 2.3.4

वर्शन 2.3.4

18 मार्च, 2020

androidx.work:work-*:2.3.4 रिलीज़ हो गया है. वर्शन 2.3.4 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जो 10 मिनट की एक्ज़ीक्यूशन विंडो को पार करने के बाद, लंबे समय तक चलने वाले Worker के कई इंस्टेंस की वजह से चलता था. (aosp/1247484, b/150553353)
  • WorkManager के लिंट IssueRegistry के लिए ठीक किया गया. योगदान देने के लिए, Slack की तरफ़ से @ZacSweers धन्यवाद. (aosp/1217923)

वर्शन 2.3.3

वर्शन 2.3.3

4 मार्च, 2020

androidx.work:work-*:2.3.3 रिलीज़ हो गया है. वर्शन 2.3.3 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • गड़बड़ी को ठीक किया गया है. इसकी वजह से, Worker में रुकावट आने पर, उसे सही तरीके से फिर से शेड्यूल नहीं किया जा सकता था. (b/150325687, aosp/1246571)

वर्शन 2.3.2

वर्शन 2.3.2

19 फ़रवरी, 2020

androidx.work:work-*:2.3.2 रिलीज़ हो गई हैं. वर्शन 2.3.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक करता है जहां WorkManager, JobScheduler में काम करने की तय सीमा को पार कर जाता है. ऐसा बहुत कम मामलों में होता है. (aosp/1226859, b/149092520)
  • ConstraintControllers में रेस कंडिशन के लिए तय की गई समस्या को ठीक करना. (aosp/1220100)
  • लंबे समय से काम कर रहे कर्मचारियों के लिए, मैनेजमेंट की फ़ोरग्राउंड सेवा की लाइफ़साइकल को बेहतर बनाया गया. (aosp/1226295)
  • लंबे समय तक चलने वाली Workers on Worker की रद्द करने की प्रोसेस के लिए, सूचनाओं को रद्द करने की प्रोसेस को बेहतर बनाया गया. (aosp/1228346)

वर्शन 2.3.1

वर्शन 2.3.1

5 फ़रवरी, 2020

androidx.work:work-*:2.3.1 रिलीज़ हो गया है. वर्शन 2.3.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • फ़ोरग्राउंड Service के चालू होने पर, लंबे समय तक चलने वाले Worker के लिए, Notification की लाइफ़साइकल को बेहतर तरीके से मैनेज करें. (aosp/1218539, b/147249312)
  • WorkManager अब androidx.sqlite:sqlite-framework:2.1.0 स्टेबल पर निर्भर है. (aosp/1217729)
  • ForegroundInfo में foregroundServiceType का इस्तेमाल करते समय, AndroidManifest.xml में foregroundServiceType के बारे में बताया गया है, यह पक्का करने के लिए लिंट के नियम जोड़े गए. (aosp/1214207, b/147873061)

वर्शन 2.3.0

वर्शन 2.3.0

22 जनवरी, 2020

androidx.work:work-*:2.3.0 रिलीज़ हुई है. इसमें 2.3.0-rc01 से कोई बदलाव नहीं किया गया है. वर्शन 2.3.0 में ये कमियां शामिल हैं.

2.2.0 के बाद से हुए अहम बदलाव

  • ListenableWorker#setForegroundAsync() के ज़रिए लंबे समय तक चलने वाले या ज़रूरी काम के लिए सहायता पाएं.
  • ListenableWorker#setProgressAsync() के ज़रिए वर्कर की प्रोग्रेस के लिए सहायता.
  • WorkManager अब लाइब्रेरी के हिस्से के तौर पर, लिंट के अतिरिक्त नियमों को पैकेज करता है, ताकि गड़बड़ियों को जल्दी पहचानने में मदद मिल सके.

वर्शन 2.3.0-rc01

8 जनवरी, 2020

androidx.work:work-*:2.3.0-rc01 रिलीज़ हो गया है. वर्शन 2.3.0-rc01 में ये कमियां शामिल हैं.

यह रिलीज़, 2.3.0-beta02 से मिलती-जुलती है

गड़बड़ियां ठीक की गईं

  • work-testing आर्टफ़ैक्ट, अब work-runtime-ktx पर api डिपेंडेंसी तय करता है. (aosp/1194410)

वर्शन 2.3.0-beta02

18 दिसंबर, 2019

androidx.work:work-*:2.3.0-beta02 रिलीज़ हो गया है. वर्शन 2.3.0-beta02 में ये तय किए गए हिस्से शामिल हैं.

नई सुविधाएं

  • ठीक नहीं किए जा सकने वाले SQLite अपवादों के लिए, गड़बड़ी का बेहतर मैसेज जोड़ा गया. (aosp/1185777)
  • एक लिंट नियम जोड़ा गया, जो यह पक्का करता है कि मांग पर शुरू करने की सुविधा का इस्तेमाल करते समय, कॉन्टेंट देने वाले androidx.work.impl.WorkManagerInitializer को AndroidManifest.xml से हटा दिया जाए. (aosp/1167007)
  • enqueueUniquePeriodicWork() के बजाय PeriodicWorkRequest के लिए enqueue() का इस्तेमाल करने पर, लिंट की चेतावनी जोड़ी गई. (aosp/1166032)

एपीआई में किए गए बदलाव

  • ForegroundInfo के लिए अब आपको ListenableWorker.setForegroundAsync() का इस्तेमाल करते समय इस्तेमाल करने के लिए notificationId तय करना होगा. यह बदलाव नुकसान पहुंचा सकता है. इससे आपको एक साथ कई देर तक चलने वाले Workers चलाने में मदद मिलती है. WorkManager दिए गए Notification के लाइफ़टाइम को भी बेहतर ढंग से मैनेज करता है. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)

गड़बड़ियां ठीक की गईं

  • AlarmManager लागू करने की उस गड़बड़ी को ठीक किया गया है जिसमें अलार्म को सही तरीके से साफ़ नहीं किया जा रहा था. (aosp/1156444)
  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से WorkRequest की खाली सूची में, WorkContinuation की गलत चेन बन सकती थी. (b/142835274, aosp/1157051)

डिपेंडेंसी में बदलाव

  • WorkManager अब रूम 2.2.2 का इस्तेमाल करता है.

वर्शन 2.3.0-beta01

20 नवंबर, 2019

androidx.work:work-*:2.3.0-beta01 रिलीज़ हो गया है. वर्शन 2.3.0-beta01 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • एक नया लिंट नियम जोड़ा गया, जो मांग पर शुरू करने की सुविधा का इस्तेमाल करते समय, androidx.work.Configuration.Provider को गलत तरीके से लागू करने की वजह से डेवलपर की गड़बड़ियों को रोकता है. aosp/1164559

वर्शन 2.3.0-alpha03

23 अक्टूबर, 2019

androidx.work:work-*:2.3.0-alpha03 रिलीज़ हो गया है. वर्शन 2.3.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager.createCancelPendingIntent() एपीआई जोड़ा गया. इसकी मदद से, AndroidManifest.xml में कोई दूसरा कॉम्पोनेंट रजिस्टर किए बिना, WorkRequest को आसानी से रद्द किया जा सकता है. इस एपीआई की मदद से, खास तौर पर Notification से WorkRequest को रद्द करना आसान हो जाता है. हमें उम्मीद है कि इसे 2.3.0 में नए फ़ोरग्राउंड एपीआई के साथ जोड़ दिया जाएगा.
  • WorkManager अब androidx.room:*:2.2.0 स्टेबल पर निर्भर करता है.

एपीआई में किए गए बदलाव

  • मौजूदा प्लैटफ़ॉर्म एपीआई के साथ ज़्यादा काम करने के लिए, ForegroundInfo.getNotificationType() का नाम बदलकर ForegroundInfo.getForegroundServiceType() किया गया. (b/142729893, aosp/1143316)

गड़बड़ियां ठीक की गईं

  • ट्रांज़ैक्शन के बाहर setTransactionSuccessful() पर गैर-ज़रूरी कॉल करने की वजह से आई गड़बड़ी को ठीक कर दिया गया है. ऐसा बहुत कम मामलों में होने वाले माइग्रेशन के लिए होता है. (b/142580433, aosp/1141737)

वर्शन 2.3.0-alpha02

9 अक्टूबर, 2019

androidx.work:work-*:2.3.0-alpha02 रिलीज़ हो गया है. वर्शन 2.3.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • WorkManager अब लंबे समय तक चलने वाले या ज़रूरी काम को चलाने की सुविधा देता है, जिसे ओएस में बनाए रखना चाहिए. ज़्यादा जानकारी के लिए, ListenableWorker#setForegroundAsync() (या Kotlin के लिए CoroutineWorker#setForeground()) देखें. (aosp/1133636)

एपीआई में किए गए बदलाव

  • Data में containsKey एपीआई का नाम बदलकर, hasKeyWithValueOfType कर दिया गया है. ktx लाइब्रेरी में, इससे जुड़े एक्सटेंशन के तरीके का नाम भी बदल दिया गया है. (b/141916545)

गड़बड़ियां ठीक की गईं

  • जब कतार में WorkRequest की संख्या शेड्यूलिंग की सीमाएं होती हैं, तब WorkManager शेड्यूल सही तरीके से काम करता है. (aosp/1105766)
  • WorkManager ListenableWorker#onStopped() को सिर्फ़ तब कॉल करता है, जब काम पूरा नहीं हुआ हो. (b/140055777)
  • अब WorkManager, वर्कर के काम में रुकावट आने या टर्मिनल की स्थिति पर पहुंचने पर, प्रोग्रेस की जानकारी को हटा देता है. (aosp/1114572)
  • Data में अब ज़्यादा काम की toString()सुविधा उपलब्ध हो गई है. (b/140945323)
  • Data में अब equals() तरीका बेहतर है. यह Array टाइप के लिए, deepEquals के साथ भी काम करता है. (b/140922528)
  • WorkManager अब अपने इंटरनल डेटाबेस और पसंदीदा फ़ाइलों को किसी बैकअप डायरेक्ट्री में सेव नहीं करता. (b/114808216)

वर्शन 2.3.0-alpha01

22 अगस्त, 2019

androidx.work:work-*:2.3.September 5, 20190-alpha01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • ListenableWorker अब setProgressAsync() एपीआई के ज़रिए प्रोग्रेस सेट कर सकते हैं. साथ ही, CoroutineWorker में इससे जुड़ा suspend-ing setProgress एपीआई और RxWorker में setProgress जोड़ा गया, जो Single<Void> दिखाता है. इन नए एपीआई की मदद से वर्कर, WorkInfo से प्रोग्रेस की जानकारी दे सकते हैं. इसमें, उससे जुड़ा getProgress एपीआई होता है. (b/79481554)
  • Data में containsKey() एपीआई है. इसका इस्तेमाल यह पुष्टि करने के लिए किया जा सकता है कि Worker के इनपुट डेटा में सही तरह की कुंजियां हैं. (b/117136838)
  • Data को अब Data.toByteArray() और Data.fromByteArray() का इस्तेमाल करके, क्रम से लगाया जा सकता है. ध्यान दें कि Data के साथ वर्शन की कोई गारंटी नहीं है. इसलिए, आपको इसे लागू करना चाहिए या ऐप्लिकेशन के बीच आईपीसी के लिए इसका इस्तेमाल नहीं करना चाहिए. इनका इस्तेमाल सिर्फ़ एक ही ऐप्लिकेशन की कई प्रोसेस के बीच किया जा सकता है.
  • Configuration.setInputMergerFactory के ज़रिए InputMergerFactory तय करने की सुविधा जोड़ी गई. (b/133273159)

एपीआई में किए गए बदलाव

  • अगर WorkerFactory, पहले ट्रिगर किए गए ListenableWorker का इंस्टेंस दिखाता है, तो WorkManager IllegalStateException का इंस्टेंस दिखाएगा. (b/139554406)
  • ListenableFuture की सदस्यता रद्द किए जाने और ListenableWorker में onStopped() कॉलबैक से जुड़े दस्तावेज़ों के अपडेट. (b/138413671)

गड़बड़ियां ठीक की गईं

  • इन-प्रोसेस शेड्यूलर, अब idle कंस्ट्रेंट के साथ WorkRequest को अनदेखा कर देता है. अब JobScheduler को ये अनुरोध तब ही मिलेंगे, जब डिवाइस असल में idle पर होगा. (aosp/1089779)
  • TestScheduler अब जांच में अपने अंदरूनी टास्क एक्ज़ेक्यूटर के लिए बताए गए Executor का सही तरीके से इस्तेमाल करता है. (aosp/1090749)

वर्शन 2.2.0

वर्शन 2.2.0

15 अगस्त, 2019

androidx.work:work-*:2.2.0 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

यह रिलीज़, androidx.work:work-*:2.2.0-rc01 से मिलती-जुलती है.

2.1.0 से 2.2.0 में हुए अहम बदलाव

androidx.work:work-gcm:2.2.0 एक नया Maven आर्टफ़ैक्ट है. इसकी मदद से, शेड्यूलर के तौर पर GCMNetworkManager को तब इस्तेमाल किया जा सकता है, जब Google Play services, एपीआई लेवल <= 22 के लिए उपलब्ध हो. यह एक वैकल्पिक डिपेंडेंसी है. इससे एपीआई के पुराने वर्शन पर, ज़्यादा भरोसेमंद और बेहतर बैकग्राउंड प्रोसेसिंग में मदद मिलती है. अगर आपके ऐप्लिकेशन में Google Play services का इस्तेमाल किया जाता है, तो इस डिपेंडेंसी को अपनी ग्रेडल फ़ाइल में जोड़ें. इससे GCMNetworkManager से मदद अपने-आप मिल सकेगी. Play सेवाएं उपलब्ध न होने पर, WorkManager पुराने डिवाइसों पर AlarmManager पर वापस काम करता रहेगा.

वर्शन 2.2.0-rc01

30 जुलाई, 2019

androidx.work:work-*:2.2.0-rc01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • AlarmManager लागू करने की प्रक्रिया में हुई गड़बड़ी को ठीक किया गया है. इसकी वजह से, सेवा समय से पहले बंद हो जाती है और बहुत कम मामलों में RejectedExecutionException मिल जाता है. (aosp/1092374) (b/138238197).
  • कुछ डिवाइसों पर JobScheduler API का इस्तेमाल करते समय, NullPointerException के लिए समाधान जोड़ा गया. (aosp/1091020) (b/138364061), (b/138441699)

वर्शन 2.2.0-beta02

19 जुलाई, 2019

androidx.work:work-*:2.2.0-beta02 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • अनजाने में हुई jacoco डिपेंडेंसी हटाई गई, जो 2.2.0-beta01 में जोड़ी गई थी.

वर्शन 2.2.0-beta01

17 जुलाई, 2019

androidx.work:work-*:2.2.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • androidx.work:work-gcm:2.2.0-beta01 एक नया Maven आर्टफ़ैक्ट है. इसकी मदद से, शेड्यूलर के तौर पर GCMNetworkManager को तब इस्तेमाल किया जा सकता है, जब Google Play services, एपीआई लेवल <= 22 के लिए उपलब्ध हो. यह एक ज़रूरी नहीं डिपेंडेंसी है. इससे एपीआई के पुराने वर्शन पर, ज़्यादा भरोसेमंद और बेहतर बैकग्राउंड प्रोसेसिंग में मदद मिलती है. अगर आपके ऐप्लिकेशन में Google Play services का इस्तेमाल किया जाता है, तो इस डिपेंडेंसी को अपनी ग्रेडल फ़ाइल में जोड़ें. इससे GCMNetworkManager से मदद अपने-आप मिल सकेगी. Play सेवाएं उपलब्ध न होने पर, WorkManager पुराने डिवाइसों पर AlarmManager पर वापस काम करता रहेगा.

गड़बड़ियां ठीक की गईं

  • Nvidia Shield K1 टैबलेट पर नेटवर्क की स्थिति ट्रैक करने के दौरान, IllegalArgumentException के लिए समस्या ठीक की गई. (aosp/1010188)

वर्शन 2.1.0

वर्शन 2.1.0

11 जुलाई, 2019

androidx.work:work-*:2.1.0 रिलीज़ हो गया है. यह रिलीज़, androidx.work:work-*:2.1.0-rc01 की तरह है.

2.0.1 से हुए अहम बदलाव

  • work-runtime-ktx को अब Java 8 की ज़रूरत है. अगर आपको कोई समस्या आती है, तो अपने build.gradle में यह जानकारी जोड़ें: kotlinOptions { jvmTarget = "1.8" }
  • WorkManager के लिए, मांग पर शुरू करने की सुविधा जोड़ी गई. इससे WorkManager तैयार हो जाएगा सिर्फ़ तभी काम करते हैं, जब रेफ़रंस दिया गया हो. b/127497100 मांग पर शुरू करने के लिए, अपने प्रोजेक्ट को सेट अप करने के लिए:
    1. ऑटोमैटिक शुरू करने वाले टूल को बंद करें.
    2. अपने कस्टम Application ऑब्जेक्ट पर Configuration.Provider लागू करें.
    3. WorkManager.getInstance() के सभी संदर्भों को इसमें बदलें WorkManager.getInstance(Context). इस बदलाव के तहत, हमने WorkManager.getInstance() अब काम नहीं करता. नए कॉल को कॉल करना हमेशा सुरक्षित रहता है WorkManager.getInstance(Context) को बदलना, भले ही न किया जा रहा हो मांग पर शुरू करना.
  • PeriodicWorkRequest अब शुरुआती देरी के लिए काम करते हैं. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए शुरुआती सेट करने के लिए, PeriodicWorkRequest.Builder पर setInitialDelay तरीका देरी. b/111404867
  • इसका इस्तेमाल करके, रजिस्टर किए गए एक या उससे ज़्यादा WorkerFactory को ऐक्सेस देने की सुविधा जोड़ी गई DelegatingWorkerFactory. b/131435993
  • इसके लिए, WorkManager की मदद से इस्तेमाल किए जाने वाले Executor को पसंद के मुताबिक बनाने की सुविधा जोड़ी गई Configuration.Builder.setTaskExecutor के ज़रिए इसकी किताबों का रखरखाव किया जा सकता है.
  • ऐसी इकाई बनाने की सुविधा जोड़ी गई जिसकी जांच की जा सकती है. Worker और ListenableWorker TestWorkerBuilder और TestListenableWorkerBuilder का इस्तेमाल करके, work-testing आर्टफ़ैक्ट.
    • ध्यान दें कि work-testing, अब डिपेंडेंसी के तौर पर Kotlin को खींचता है और इसमें डिफ़ॉल्ट रूप से, कई Kotlin एक्सटेंशन होते हैं.
  • दौड़ने की कोशिश की संख्या WorkInfo में जोड़ी गई. b/127290461
  • Data टाइप अब बाइट और बाइट अरे को स्टोर और वापस पा सकते हैं. ऐसा नहीं होता Data ऑब्जेक्ट का ज़्यादा से ज़्यादा साइज़ बदलें.
  • WorkManager अब Room 2.1.0 पर निर्भर करता है. इससे डेटाबेस से जुड़ी कुछ समस्याएं ठीक हो सकती हैं.

वर्शन 2.1.0-rc01

27 जून, 2019

androidx.work:work-*:2.1.0-rc01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, बैकअप लेने के दौरान JobScheduler पर काम करते समय ऐप्लिकेशन क्रैश हो सकता था b/135858602.

वर्शन 2.1.0-beta02

20 जून, 2019

androidx.work:work-*:2.1.0-beta02 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • ListenableWorker के इंस्टेंस बनाते समय, TestListenableWorkerBuilder अब सही WorkerFactory का इस्तेमाल करता है. b/135275844
  • उस गड़बड़ी को ठीक किया गया जो प्रोसेस बंद होने की वजह से, WorkRequest के लिए एक्ज़ीक्यूशन विंडो में ड्रिफ़्ट होती थी. b/135272196

वर्शन 2.1.0-beta01

13 जून, 2019

androidx.work:work-*:2.1.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • WorkManager अब Room 2.1.0 पर निर्भर करता है. इससे डेटाबेस से जुड़ी कुछ समस्याएं ठीक हो सकती हैं.
  • मुख्य थ्रेड से कुछ स्टार्टअप डिस्क I/O हटाई गईं.
  • कंस्ट्रेंट ट्रैकिंग में आने वाले संभावित डेडलॉक को ठीक किया गया. b/134361006
  • WorkManager को एट्रिब्यूट की गई अमान्य जॉब पहले से रद्द की गईं. b/134058261
  • डिवाइस ठीक से काम न करने वाले डिवाइसों के लिए, JobScheduler API में कुछ डिफ़ेंसिव कॉल जोड़े गए.

वर्शन 2.1.0-alpha03

5 जून, 2019

androidx.work:*:2.1.0-alpha03 रिलीज़ हो गया है.

गड़बड़ियां ठीक की गईं

  • PeriodicWorkRequest के लिए बेहतर दस्तावेज़.
  • WorkManagerTestInitHelper अब जांच के लिए, सही बैकग्राउंड एक्ज़ीक्यूटर का इस्तेमाल करता है.
  • कुछ डिवाइसों पर बड़े लेन-देन करते समय, SQLite से जुड़ी समस्याओं को ठीक किया गया है. (b/130182503)
  • WorkManager की डिपेंडेंसी अब पहले से ज़्यादा बारीक हो गई है. (b/133169148).
  • WorkManager का इस्तेमाल करके, जॉब शेड्यूल करते समय, JobScheduler को लागू करने में OEM की खास गड़बड़ियों को ठीक करना.
  • अलार्मManager पर आधारित शेड्यूलर में, सेवा की अवधि के आस-पास ऐसे सुधार किए गए हैं जिनकी वजह से पहले कभी-कभी ऐप्लिकेशन क्रैश होता था. (b/133313734)

वर्शन 2.1.0-alpha02

16 मई, 2019

WorkManager 2.1.0-alpha02 रिलीज़ किया गया. इस वर्शन में कई नए एपीआई हैं.

एपीआई में बदलाव

  • PeriodicWorkRequest अब शुरुआती देरी के लिए काम करते हैं. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए शुरुआती सेट करने के लिए, PeriodicWorkRequest.Builder पर setInitialDelay तरीका देरी. b/111404867

  • इसका इस्तेमाल करके, रजिस्टर किए गए एक या उससे ज़्यादा WorkerFactory को ऐक्सेस देने की सुविधा जोड़ी गई DelegatingWorkerFactory. b/131435993

  • इसके लिए, WorkManager के इस्तेमाल किए जाने वाले Executor को पसंद के मुताबिक बनाने की सुविधा जोड़ी गई Configuration.Builder.setTaskExecutor के ज़रिए इसकी किताबों का रखरखाव किया जा सकता है.

  • WorkRequest.keepResultsForAtLeast के बारे में बेहतर दस्तावेज़ (b/130638001), मांग पर शुरू करना और PeriodicWorkRequest.Builder (b/131711394).

वर्शन 2.1.0-alpha01

24 अप्रैल, 2019

WorkManager 2.1.0-alpha01 रिलीज़ किया गया. इस वर्शन में कई नए एपीआई हैं. कृपया ध्यान दें कि इस वर्शन की शुरुआत में, ऐसी नई सुविधाएं जोड़ी जाएंगी जो 1.x रिलीज़ पर बैकपोर्ट नहीं किया जाएगा. हमारा सुझाव है कि आप 2.x पर स्विच करें.

एपीआई में बदलाव

  • WorkManager के लिए, मांग पर शुरू करने की सुविधा जोड़ी गई. इससे WorkManager तैयार हो जाएगा सिर्फ़ तभी काम करते हैं, जब रेफ़रंस दिया गया हो. b/127497100 मांग पर शुरू करने के लिए, अपने प्रोजेक्ट को सेट अप करने के लिए:
    1. ऑटोमैटिक शुरू करने वाले टूल को बंद करें.
    2. अपने कस्टम Application ऑब्जेक्ट पर Configuration.Provider लागू करें.
    3. WorkManager.getInstance() के सभी संदर्भों को इसमें बदलें WorkManager.getInstance(Context). इस बदलाव के तहत, हमने WorkManager.getInstance() अब काम नहीं करता. नए कॉल को कॉल करना हमेशा सुरक्षित रहता है WorkManager.getInstance(Context) को बदलना, भले ही न किया जा रहा हो मांग पर शुरू करना.
  • ऐसी इकाई बनाने की सुविधा जोड़ी गई जिसकी जांच की जा सकती है. Worker और ListenableWorker TestWorkerBuilder और TestListenableWorkerBuilder का इस्तेमाल करके, work-testing आर्टफ़ैक्ट.
    • ध्यान दें कि work-testing अब Kotlin को डिपेंडेंसी के तौर पर चुनता है, लेकिन साथ ही इसमें डिफ़ॉल्ट रूप से, कई Kotlin एक्सटेंशन होते हैं.
  • WorkInfo में दौड़ने की कोशिश की संख्या जोड़ी गई. b/127290461
  • Data टाइप अब बाइट और बाइट अरे को स्टोर और वापस पा सकते हैं. इसमें Data ऑब्जेक्ट का ज़्यादा से ज़्यादा साइज़ बदलें.
  • CoroutineWorker.coroutineContext अब काम नहीं करता. यह फ़ील्ड गलत था CoroutineDispatcher के तौर पर लिखा गया है; अब आपको इसकी ज़रूरत नहीं होगी, क्योंकि निलंबित करने वाले फ़ंक्शन के मुख्य हिस्से में, अपने मनचाहे CoroutineContext का इस्तेमाल करें.
  • अब RxWorker.createWork() और RxWorker.getBackgroundScheduler() @NonNull रिटर्न टाइप के साथ एनोटेट किया गया है.

वर्शन 2.0.1

वर्शन 2.0.1

9 अप्रैल, 2019

WorkManager 2.0.1 रिलीज़ किया गया. यह रिलीज़ इससे मिलती-जुलती है 2.0.1-rc01.

वर्शन 2.0.1-rc01

3 अप्रैल, 2019

WorkManager 2.0.1-rc01 रिलीज़ किया गया है. इस वर्शन में कुछ गड़बड़ियां ठीक की गई हैं. इसके लिए 1.x लेगसी उपयोगकर्ता हैं, तो इनमें से कुछ बदलाव 1.0.1-rc01.

गड़बड़ियां ठीक की गईं

  • Robolectric टेस्ट अब WorkManager के साथ ठीक से काम करते हैं. b/122553577
  • किनारे वाले केस क्रैश को ठीक किया गया, जिसमें कंस्ट्रेंट ट्रैकिंग को क्लीनअप नहीं किया जा रहा है pre- JobScheduler API. b/129226383
  • काम की लंबी चेन के साथ काम करने वाले StackOverflowError को ठीक किया गया. b/129091233
  • फ़्लेक्स टाइम है, यह बताने के लिए PeriodicWorkRequest के दस्तावेज़ अपडेट किए गए यह एपीआई 23 पर काम नहीं करता.
  • Kotlin दस्तावेज़ में कुछ काम न करने वाले लिंक ठीक किए गए.

वर्शन 2.0.0

वर्शन 2.0.0

20 मार्च, 2019

WorkManager 2.0.0 रिलीज़ किया गया. यह वर्शन 2.0.0-rc01 के जैसा है और यह स्टेबल वर्शन 1.0.0 का AndroidX वर्शन, जो AndroidX डिपेंडेंसी के साथ काम करता हो. हमारे ये सुझाव हैं: इस वर्शन को टारगेट करने के लिए किया जा रहा है. सभी सक्रिय डेवलपमेंट 2.x को लक्षित करेगा और 1.x को सीमित समय तक.

वर्शन 2.0.0-rc01

7 मार्च, 2019

WorkManager 2.0.0-rc01 रिलीज़ किया गया है. यह वर्शन, 1.0.0 स्टेबल वर्शन के जैसा है लेकिन इसमें AndroidX डिपेंडेंसी है. इसके 2.0.0 के स्थिर होने पर, आपको यह करना चाहिए इस वर्शन को शामिल करें और लेगसी 1.x वर्शन को सिर्फ़ कुछ अहम अपडेट मिलेंगे गड़बड़ियां ठीक की गईं. सभी ऐक्टिव डेवलपमेंट को 2.x को टारगेट किया जाएगा.

AndroidX से पहले की डिपेंडेंसी

Kotlin एक्सटेंशन का इस्तेमाल करने के बारे में जानकारी के लिए, यहां देखें: KTX दस्तावेज़.
रेफ़रंस के लिए दस्तावेज़: Java

ग्रूवी

dependencies {
    def work_version = "1.0.1"

    // (Java only)
    implementation "android.arch.work:work-runtime:$work_version"

    // Kotlin + coroutines
    implementation "android.arch.work:work-runtime-ktx:$work_version"

    // optional - RxJava2 support
    implementation "android.arch.work:work-rxjava2:$work_version"
    // optional - Test helpers
    androidTestImplementation "android.arch.work:work-testing:$work_version"
}

Kotlin

dependencies {
    val work_version = "1.0.1"

    // (Java only)
    implementation("android.arch.work:work-runtime:$work_version")

    // Kotlin + coroutines
    implementation("android.arch.work:work-runtime-ktx:$work_version")

    // optional - RxJava2 support
    implementation("android.arch.work:work-rxjava2:$work_version")

    // optional - Test helpers
    androidTestImplementation("android.arch.work:work-testing:$work_version")
}

वर्शन 1.0.1

वर्शन 1.0.1

9 अप्रैल, 2019

WorkManager 1.0.1 रिलीज़ किया गया. यह रिलीज़ इससे मिलती-जुलती है 1.0.1-rc01.

कृपया ध्यान दें कि हम उपयोगकर्ताओं को WorkManager 2.x को अपडेट करने की खास तौर पर सलाह देते हैं, क्योंकि आने वाले समय में, 1.x ब्रांच में बहुत कम अपडेट होंगे. नए एपीआई भी रिलीज़ नहीं की जाएगी.

वर्शन 1.0.1-rc01

2 अप्रैल, 2019

WorkManager 1.0.1-rc01 रिलीज़ किया गया है. इस वर्शन में कुछ गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • Robolectric टेस्ट अब WorkManager के साथ ठीक से काम करते हैं. b/122553577
  • किनारे वाले केस क्रैश को ठीक किया गया, जिसमें कंस्ट्रेंट ट्रैकिंग को क्लीनअप नहीं किया जा रहा है pre- JobScheduler API. b/129226383
  • काम की लंबी चेन के साथ काम करने वाले StackOverflowError को ठीक किया गया. b/129091233

वर्शन 1.0.0

वर्शन 1.0.0

5 मार्च, 2019

यह WorkManager की 1.0.0 स्टेबल रिलीज़ है. WorkManager का यह वर्शन 1.0.0-rc02 के जैसा होना चाहिए.

वर्शन 1.0.0-rc02

21 फ़रवरी, 2019

यह WorkManager के 1.0.0 स्टेबल रिलीज़ के लिए, दूसरा रिलीज़ कैंडिडेट है. इस रिलीज़ में दो गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • ऐप्लिकेशन क्रैश होने के बाद, Worker अब सही तरीके से शेड्यूल किए गए हैं. b/124546316

  • सही का निशान हटाए जाने वाले Exception को फेंकने वाले Worker को अब सही तरीके से इसके तौर पर मार्क किया गया है FAILED साथ ही ऐप्लिकेशन को क्रैश या फ़्रीज़ होने से बचाएं.

वर्शन 1.0.0-rc01

14 फ़रवरी, 2019

यह WorkManager के 1.0.0 स्टेबल रिलीज़ के लिए, रिलीज़ कैंडिडेट है. इस रिलीज़ में एक गड़बड़ी ठीक की गई है.

गड़बड़ियां ठीक की गईं

  • अलार्मManager पर आधारित काम करने का तरीका, अब flex विंडो का सही तरीके से पालन करता है ज़रूर करें. b/124274584

वर्शन 1.0.0-beta05

6 फ़रवरी, 2019

इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • उस मामले को ठीक किया गया जहां JobScheduler.getPendingJob(...) का इस्तेमाल एपीआई 23 पर किया गया था. b/123893059
  • Android 5.1 (एपीआई लेवल 22) पर काम करने वाले डिवाइसों पर NullPointerException ठीक किया गया या उससे कम. b/123835104

वर्शन 1.0.0-beta04

4 फ़रवरी, 2019

इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • अलार्मManager पर आधारित सुविधा लागू करने के लिए,periodicWork के शेड्यूल को बेहतर बनाना.
  • ऐसे मामले को ठीक किया गया जहां WorkManager पाबंदियों को सही तरीके से ट्रैक नहीं कर पाता, जब AlarmManager आधारित लागू करने की सुविधा का इस्तेमाल करके. b/123379508
  • ऐसे मामले को ठीक किया गया जिसमें WorkManager, प्रोसेस डेथ पर काम करने की फिर से कोशिश नहीं कर पाता. ऐसा तब होता है, जब AlarmManager आधारित लागू करने की सुविधा का इस्तेमाल करके. b/123329850
  • उस केस को ठीक किया गया है जिसकी वजह से WorkManager, AlarmManager आधारित लागू.

वर्शन 1.0.0-beta03

25 जनवरी, 2019

इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • हमने एक रिग्रेशन 1.0.0-beta02 शुरू किया, जिसकी वजह से काम पूरा नहीं हो सका कुछ मामलों में सही तरीके से. b/123211993
  • एक ऐसे मामले को ठीक किया गया है जिसमें काम, बैकऑफ़ टाइम पर ठीक से काम नहीं करता था. b/122881597
  • Android 5.1 (एपीआई) चलाने वाले डिवाइसों पर ConcurrentModificationException ठीक किया गया या) या उससे कम. इस समस्या को ठीक करने के लिए, 1.0.0-beta02 में एक सिलसिला जारी है. b/121345393
  • हमारी मेनिफ़ेस्ट फ़ाइल में उन कॉम्पोनेंट के लिए exported=false जोड़ा गया जो उपलब्ध नहीं थे यह एनोटेशन.
  • इसमें यह जानकारी शामिल की गई है कि WorkManager, ओएस के साथ कैसे इंटरैक्ट करता है पैकेज लेवल का दस्तावेज़.

वर्शन 1.0.0-beta02

15 जनवरी, 2019

इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • एक किनारे वाला मामला तय किया गया जहां समय-समय पर हर अंतराल में एक से ज़्यादा बार काम हो सकता था Android 6.0 (एपीआई लेवल 23) वाले डिवाइसों पर. b/121998363
  • Android 5.1 (एपीआई) चलाने वाले डिवाइसों पर ConcurrentModificationException ठीक किया गया लेवल 22) या उससे कम. b/121345393
  • डिवाइसों पर पाबंदियां पूरी न होने पर, काम को गलत तरीके से किए जाने की समस्या को ठीक किया गया जो Android 5.1 (एपीआई लेवल 22) या इससे पहले के वर्शन पर काम कर रहे हों. b/122578012
  • कुछ मामलों में, काम पूरा होने की प्रोसेस को ऑप्टिमाइज़ किया गया है, ताकि तेज़ी से काम किया जा सके. b/122358129
  • कई इंस्टेंस में संभावित रेस स्थितियों के बारे में पता करने के लिए बदलाव जोड़ा गया का LiveData है, जिसे WorkManager इस्तेमाल करता है.
  • 1.1.1-rc01 के बजाय, Room डिपेंडेंसी 1.1.1 का इस्तेमाल करने के लिए ले जाया गया; यह वर्शन एक जैसे हैं. b/122578011

वर्शन 1.0.0-beta01

19 दिसंबर, 2018

इस रिलीज़ में, एपीआई में कोई बदलाव नहीं किया गया है; आने वाले समय में, WorkManager को उम्मीद है कि अगले वर्शन तक एपीआई एक जैसा काम करेगा. ऐसा तब तक होगा, जब तक कोई गंभीर समस्या न हो. इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.

गड़बड़ियां ठीक की गईं

  • माता-पिता के पूरे हो चुके काम के बाद, रद्द किए गए बच्चे अब नहीं चलेंगे. b/120811767
  • सही तरीके से शुरू की गई लॉगिंग क्लास (मुख्य रूप से टेस्ट के दौरान दिखती हैं).

वर्शन 1.0.0-alpha13

12 दिसंबर, 2018

इस रिलीज़ में एपीआई का एक छोटा सा बदलाव शामिल है. यह Kotlin के कुछ उपयोगकर्ताओं के लिए मददगार होगा.

एपीआई में बदलाव

  • androidx.work.Result को ListenableWorker की अंदरूनी क्लास में ले जाया गया है. इससे, Kotlin की टॉप-लेवल Result क्लास के साथ टकरावों को रीफ़ैक्ट नहीं किया जा सकता. यह एपीआई में किया गया बदलाव तोड़ने वाला है. b/120564418

तीसरे पक्ष के एपीआई में हुए बदलाव

  • androidx.work.Result को ListenableWorker की अंदरूनी क्लास में ले जाया गया है.

वर्शन 1.0.0-alpha12

5 दिसंबर, 2018

इस रिलीज़ में, नुकसान पहुंचाने वाले एपीआई में हुए कुछ बदलाव शामिल हैं; कृपया नीचे ब्रेकिंग एपीआई में हुए बदलाव सेक्शन देखें. इस वर्शन को हमारे पहले बीटा वर्शन के तौर पर रिलीज़ किए जाने की संभावना है. alpha12 में ज़्यादा जानकारी वाले दस्तावेज़ भी शामिल हैं.

एपीआई में बदलाव

  • एक नया आर्टफ़ैक्ट, work-rxjava2, RxWorker के बारे में बताता है. यह एक ListenableWorker है, जो Single<Payload> की ज़रूरत है.
  • Firebase JobDispatcher की सुविधा जल्द ही बंद होने की वजह से इसे हटा दिया गया है. इसका मतलब है कि हम बीटा वर्शन में काम करेंगे. इस वजह से, अब work-firebase आर्टफ़ैक्ट को अपडेट नहीं किया जाएगा. हम आने वाले समय में, कोई अन्य विकल्प जोड़ने पर काम कर रहे हैं.
  • Payload को Result में जोड़ा गया. Result अब "सील की गई क्लास" है इसे तीन तरीके से लागू किया जा सकता है, जिन्हें Result.success() (या Result.success(Data)), Result.failure() (या Result.failure(Data)), और Result.retry() से डाउनलोड किया जा सकता है. आपके ListenableFuture को अब Payload के बजाय Result नतीजे मिल रहे हैं. Worker के पास Data आउटपुट के लिए गैटर और सेटर तरीके नहीं हैं. यह बदलाव नुकसान पहुंचा सकता है.
  • धीमे ट्रिगर होने वाले कॉन्टेंट यूआरआई के साथ बेहतर तरीके से काम करने के लिए, Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit) और Constraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit) के साथ-साथ वैरिएंट भी जोड़े गए. b/119919774
  • WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration) वैरिएंट जोड़ा गया. इस तरीके का इस्तेमाल करने के लिए, एपीआई 26 का इस्तेमाल करना ज़रूरी है.
  • Operation.await() और ListenableFuture.await() Kotlin एक्सटेंशन के तरीके जोड़े गए.
  • Operation.getException() का नाम बदलकर Operation.getThrowable() किया गया. यह बदलाव नुकसान पहुंचा सकता है.
  • ContentUriTriggers क्लास और इसे रेफ़र करने वाले तरीकों का इस्तेमाल, अब सार्वजनिक तौर पर नहीं किया जा सकता. यह बदलाव नुकसान पहुंचा सकता है.
  • एपीआई को आसान बनाने के लिए, WorkManager, WorkContinuation, और OneTimeWorkRequest में वैरिग के बाकी तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा वैरर्ग को Arrays.asList(...) के साथ रैप करें. हम अब भी हर तरीके के एक-आकलन वाले वर्शन शामिल करते हैं. यह बदलाव नुकसान पहुंचा सकता है.
  • WorkContinuation.combine(OneTimeWorkRequest, *) वैरिएंट हटाए गए. वे एक जटिल एपीआई दिखा रहे थे; combine के मौजूदा तरीके समझने में ज़्यादा आसान हैं. यह बदलाव नुकसान पहुंचा सकता है.

गड़बड़ियां ठीक की गईं

  • प्री-Marshmallow लागू करने की प्रोसेस, पहले से चल रहे टास्क के खत्म होने की प्रोसेस से दोबारा छुटकारा पाने के लिए ज़्यादा भरोसेमंद हो गई है.
  • observeForever के ज़रिए मॉनिटर की गई LiveData को WorkManager की मदद से ट्रैक किया जाता है. यह रूम लाइब्रेरी वाले समाधान का बैकपोर्ट है. b/74477406
  • अगर सीरियल ऑब्जेक्ट, तय सीमा से ज़्यादा साइज़ का है, तो Data.Builder.build() अब अपवाद दिखाता है. ऐसा पहले सिर्फ़ बैकग्राउंड थ्रेड पर होता था, जहां इसे ठीक से मैनेज नहीं किया जा सकता था.
  • रोका गया काम बनाम रद्द किया गया काम; getWorkInfoById(), ListenableWorker.onStopped() के दौरान CANCELLED State के साथ WorkInfo दिखाएगा.
  • ListenableWorker में null Result को पूरा नहीं हुआ के तौर पर मानें. बी/120362353
  • एपीआई 24 पर चलने वाले शील्ड टैबलेट के लिए, अनुमान के हिसाब से किए गए बदलाव, जिनमें कभी-कभी IllegalArgumentException का इस्तेमाल किया जाता है. b/119484416

तीसरे पक्ष के एपीआई में हुए बदलाव

  • Firebase JobDispatcher की सुविधा जल्द ही बंद होने की वजह से इसे हटा दिया गया है. इसका मतलब है कि हम बीटा वर्शन में काम करेंगे. इस वजह से, अब work-firebase आर्टफ़ैक्ट को अपडेट नहीं किया जाएगा. हम आने वाले समय में, कोई अन्य विकल्प जोड़ने पर काम कर रहे हैं.
  • Payload को Result में मिलाया गया. Result अब "सील की गई क्लास" है इसे तीन तरीके से लागू किया जा सकता है, जिन्हें Result.success() (या Result.success(Data)), Result.failure() (या Result.failure(Data)), और Result.retry() से डाउनलोड किया जा सकता है. आपके ListenableFuture को अब Payload के बजाय Result नतीजे मिल रहे हैं. Worker के पास Data आउटपुट के लिए गैटर और सेटर तरीके नहीं हैं.
  • Operation.await() और ListenableFuture.await() Kotlin एक्सटेंशन के तरीके जोड़े गए.
  • Operation.getException() का नाम बदलकर Operation.getThrowable() किया गया.
  • ContentUriTriggers क्लास और इसे रेफ़र करने वाले तरीकों का इस्तेमाल, अब सार्वजनिक तौर पर नहीं किया जा सकता.
  • एपीआई को आसान बनाने के लिए, WorkManager, WorkContinuation, और OneTimeWorkRequest में वैरिग के बाकी तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा वैरर्ग को Arrays.asList(...) के साथ रैप करें. हम अब भी हर तरीके के एक-आकलन वाले वर्शन शामिल करते हैं.
  • WorkContinuation.combine(OneTimeWorkRequest, *) वैरिएंट हटाए गए. वे एक जटिल एपीआई दिखा रहे थे; combine के मौजूदा तरीके समझने में ज़्यादा आसान हैं.

वर्शन 1.0.0-alpha11

8 नवंबर, 2018

इस रिलीज़ में कई बदलाव किए गए हैं, जो beta पर स्थिर एपीआई में बदल जाएंगे. इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें.

एपीआई में बदलाव

  • work-runtime-ktx, एक नया CoroutineWorker पेश करता है.
  • WorkStatus का नाम बदलकर WorkInfo कर दिया गया है. getStatus तरीके के सभी वैरिएंट के नाम बदलकर, संबंधित getWorkInfo वैरिएंट. यह बदलाव नुकसान पहुंचा सकता है.
  • ListenableWorker.onStopped() में अब बूलियन तर्क स्वीकार नहीं किया जाता. इससे पता चलता है कि WorkRequest का इस्तेमाल रद्द किया गया है या नहीं. WorkManager अब यह अंतर नहीं करता. यह बदलाव नुकसान पहुंचा सकता है.
  • androidx.work.test पैकेज का नाम बदलकर androidx.work.testing पैकेज कर दिया गया है. यह बदलाव नुकसान पहुंचा सकता है.
  • Constraints पर मौजूद सेटर अब सार्वजनिक एपीआई का हिस्सा नहीं हैं. यह बदलाव नुकसान पहुंचा सकता है.
  • WorkerParameters.getTriggeredContentUris() और WorkerParameters.getTriggeredContentAuthorities() ने पहले अरे दिखाया है. अब इन तरीकों से संग्रह वापस आते हैं. यह बदलाव नुकसान पहुंचा सकता है.
  • ListenableWorker.onStartWork() का नाम बदलकर ListenableWorker.startWork() कर दिया गया है. यह बदलाव नुकसान पहुंचा सकता है.
  • WorkStatus का कंस्ट्रक्टर अब सार्वजनिक एपीआई का हिस्सा नहीं है. यह बदलाव नुकसान पहुंचा सकता है.
  • Configuration.getMaxJobSchedulerID() और Configuration.getMinJobSchedulerID() का नाम बदलकर Configuration.getMinJobSchedulerId() किया गया और Configuration.getMaxJobSchedulerId(). यह बदलाव नुकसान पहुंचा सकता है.
  • एपीआई के एर्गोनॉमिक्स को बेहतर बनाने के लिए, Public API में कई @NonNull एनोटेशन जोड़े गए हैं.
  • यूनीक OneTimeWorkRequest को सूची में जोड़ने के लिए, WorkContinuation बनाए बिना WorkManager.enqueueUniqueWork() एपीआई जोड़ें.
  • WorkManager पर enqueue और cancel तरीकों के सभी वैरिएंट, अब Operation का नया टाइप दिखाते हैं. यह बदलाव नुकसान पहुंचा सकता है.
  • enqueue के सभी वैरिएंट, अब WorkRequest के लिए varrc को स्वीकार नहीं करते. यह बदलाव नुकसान पहुंचा सकता है. इसके बजाय, संग्रह का इस्तेमाल करें. मौजूदा कोड में बदलाव करने के लिए, Arrays.asList() का इस्तेमाल किया जा सकता है. हमने ऐसा एपीआई प्लैटफ़ॉर्म और तरीकों की संख्या को कम करने के लिए किया है.
  • हर प्रोसेस के लिए एक से ज़्यादा बार initialize WorkManager की कोशिश करने पर, अब IllegalStateException मिलेगा. यह बदलाव नुकसान पहुंचा सकता है.

गड़बड़ियां ठीक की गईं

  • work-runtime-ktx आर्टफ़ैक्ट में मौजूद WorkRequest.Builder अब ListenableWorker का इस्तेमाल करते हैं. b/117666259 को ठीक करता है
  • पक्का करें कि PeriodicWork के लिए, रनटाइम का अगला वर्शन आने वाले समय का हो. b/118204399 को ठीक करता है
  • ऐप्लिकेशन स्टार्टअप पर WorkManager का इस्तेमाल करते समय, संभावित डिस्क I/O हटाएं. b/117796731 को ठीक किया गया
  • WorkConstraintsTracker में रेस कंडिशन ठीक करें. android-workmanager/issues/56 को ठीक करता है

तीसरे पक्ष के एपीआई में हुए बदलाव

  • WorkStatus का नाम बदलकर WorkInfo कर दिया गया है. getStatus तरीके के सभी वैरिएंट के नाम बदलकर, संबंधित getWorkInfo वैरिएंट.
  • ListenableWorker.onStopped() में अब बूलियन तर्क स्वीकार नहीं किया जाता. इससे पता चलता है कि WorkRequest का इस्तेमाल रद्द किया गया है या नहीं. WorkManager अब यह अंतर नहीं करता.
  • androidx.work.test पैकेज का नाम बदलकर androidx.work.testing पैकेज कर दिया गया है.
  • Constraints पर मौजूद सेटर अब सार्वजनिक एपीआई का हिस्सा नहीं हैं.
  • WorkerParameters.getTriggeredContentUris() और WorkerParameters.getTriggeredContentAuthorities() ने पहले अरे दिखाया है. अब इन तरीकों से संग्रह वापस आते हैं.
  • ListenableWorker.onStartWork() का नाम बदलकर ListenableWorker.startWork() कर दिया गया है.
  • WorkStatus का कंस्ट्रक्टर अब सार्वजनिक एपीआई का हिस्सा नहीं है.
  • Configuration.getMaxJobSchedulerID() और Configuration.getMinJobSchedulerID() का नाम बदलकर Configuration.getMinJobSchedulerId() किया गया और Configuration.getMaxJobSchedulerId().
  • WorkManager पर enqueue और cancel तरीकों के सभी वैरिएंट, अब Operation का नया टाइप दिखाते हैं.
  • enqueue के सभी वैरिएंट, अब WorkRequest के लिए varrc को स्वीकार नहीं करते.
  • हर प्रोसेस के लिए एक से ज़्यादा बार initialize WorkManager की कोशिश करने पर, अब IllegalStateException मिलेगा.

वर्शन 1.0.0-alpha10

11 अक्टूबर, 2018

इस रिलीज़ में, एसिंक्रोनस काम को डेवलपर कंट्रोल करता है. इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे ब्रेकिंग एपीआई में हुए बदलाव सेक्शन देखें.

हमारा अनुमान है कि WorkManager अपनी ऐल्फ़ा पीरियड के आखिरी चरण में पहुंच रहा है. हमें उम्मीद है कि बीटा वर्शन में एपीआई की परफ़ॉर्मेंस हमेशा बेहतर होगी. इसलिए, कृपया थोड़ा समय निकालकर हमारे समस्या को ट्रैक करने वाले टूल पर अपनी शिकायत दर्ज करें.

एपीआई में बदलाव

  • पहले के सभी deprecated तरीकों और क्लास को हटा दिया गया है. खास तौर पर, यह डिफ़ॉल्ट Worker कंस्ट्रक्टर है. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.
  • NonBlockingWorker का नाम बदलकर ListenableWorker कर दिया गया है. अब इसे सार्वजनिक तौर पर दिखाया जा सकता है. साथ ही, इसका इस्तेमाल किया जा सकता है.
    • ListenableWorker से आपको एक ऐब्स्ट्रैक्ट तरीके का ऐक्सेस मिलता है, ListenableFuture<Payload> onStartWork() जिसे मुख्य थ्रेड पर कॉल किया जाता है. एसिंक्रोनस रूप से काम शुरू और प्रोसेस करने का काम आप पर है. काम पूरा हो जाने के बाद, आपको ListenableFuture को सही तरीके से अपडेट कर लेना चाहिए. ListenableFuture के रेफ़रंस को लागू करने की जानकारी, alpha02 के Futures पैकेज में दी गई है (WorkManager सेक्शन के नीचे देखें).
    • Worker, ListenableWorker की समयावधि में काम करता है. साथ ही, यह अब भी पहले की तरह काम करता है. इसमें, ऐब्स्ट्रैक्ट Result doWork() तरीके का इस्तेमाल किया गया है.
    • कुछ तरीकों और सदस्यों को Worker से ListenableWorker में शफ़ल किया गया.
    • हम जल्द ही, उन ListenableWorker के लिए रेफ़रंस लागू करने की सुविधा देंगे जो Kotlin कोरूटीन (स्टेबल वर्शन के रिलीज़ होने के बाद) और RxJava2 का इस्तेमाल करते हैं.
  • इंटरफ़ेस WorkerFactory और उसे लागू करने के कंक्रीट DefaultWorkerFactory को, WorkerFactory ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है. लागू करने से यह पक्का होता है कि रिफ़्लेक्शन पर आधारित डिफ़ॉल्ट व्यवहार को, उपयोगकर्ता के बनाए गए किसी भी WorkerFactory इंस्टेंस के लिए आखिरी बार के तौर पर कॉल किया जाए. यह बदलाव नुकसान पहुंचा सकता है.
  • WorkManager.synchronous(), WorkContinuation.synchronous(), और इससे जुड़े सभी तरीके हटाए गए. ListenableFuture<Void> को एपीआई में, कई तरीकों के रिटर्न टाइप के तौर पर जोड़ा गया. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.
    • अब आप ListenableFuture का इस्तेमाल करके सिंक्रोनस रूप से पा सकते हैं और निगरानी कर सकते हैं. उदाहरण के लिए, void रिटर्न के लिए WorkManager.enqueue() का इस्तेमाल किया गया; अब यह ListenableFuture<Void> दिखाता है. कार्रवाई पूरी होने के बाद, कोड चलाने के लिए ListenableFuture.addListener(Runnable, Executor) या ListenableFuture.get() को कॉल करें.
    • ध्यान दें कि ये ListenableFuture आपको नहीं बताते कि कार्रवाई सफल हुई या नहीं; सिर्फ़ इतना ही नहीं होता. इस जानकारी को ढूंढने के लिए, आपको अब भी WorkManager के अलग-अलग तरीकों को चेन करना होगा.
    • हम इन ऑब्जेक्ट पर cancel() कॉल को अनदेखा कर देते हैं, क्योंकि वे भ्रम की स्थिति पैदा करते हैं और इस बारे में तर्क करना मुश्किल होता है (क्या आप कार्रवाई या उसके नतीजे को रद्द कर रहे हैं?). यह Future के कानूनी समझौते के तहत है.
    • सिंक किए गए getStatus* तरीकों के साथ समानता बनाए रखने के लिए, हमने ListenableFuture वैरिएंट दिए हैं. साथ ही, उन मौजूदा वैरिएंट का नाम बदल दिया है जो LiveData के बारे में बताते हैं, ताकि उनका नाम साफ़ तौर पर "LiveData" हो जाए नाम के हिस्से के तौर पर शामिल करें (उदाहरण के लिए, getStatusesByIdLiveData(UUID)). यह एपीआई में किया गया बदलाव नुकसान पहुंचाने वाला है.

गड़बड़ियां ठीक की गईं

  • डुप्लीकेट androidx-annotations.pro फ़ाइलों से जुड़ी अल्फ़ा09 समस्या को ठीक कर दिया गया है. exclude 'META-INF/proguard/androidx-annotations.pro' को अपनी ग्रेड फ़ाइल से मिटाकर, पिछले रिलीज़ नोट से इस समस्या को हल किया जा सकता है.
  • नए Worker कंस्ट्रक्टर को बनाए रखने के लिए, ProGuard कॉन्फ़िगरेशन जोड़े गए. b/116296569
  • जहां काम REPLACE दिनों में हुआ था उस रेस कंडिशन में, संभावित NullPointerException को ठीक करें. b/116253486 और b/116677275
  • WorkContinuation.combine() अब दो या ज़्यादा के बजाय एक या उससे ज़्यादा WorkContinuation स्वीकार करता है. b/117266752

तीसरे पक्ष के एपीआई में हुए बदलाव

  • पहले के सभी deprecated तरीकों और क्लास को हटा दिया गया है. खास तौर पर, यह डिफ़ॉल्ट Worker कंस्ट्रक्टर है.
  • इंटरफ़ेस WorkerFactory और लागू करने के सही DefaultWorkerFactory तरीकों को WorkerFactory नाम के ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है.
  • WorkManager.synchronous() और WorkContinuation.synchronous() हटाए गए.
  • WorkManager.getStatus*() तरीकों से अब ListenableFutures नतीजे मिलते हैं. WorkManager.getStatus*LiveData(), LiveData रिटर्न करते हैं.

वर्शन 1.0.0-alpha09

19 सितंबर, 2018

आम समस्या

अगर आपको इस समस्या का सामना करना पड़ता है: "अगर ओएस इंडिपेंडेंट पाथ 'META-INF/proGuard/androidx-annotations.pro'' में एक से ज़्यादा फ़ाइलें मिली हैं", तो कृपया अपनी Gradle फ़ाइल में कुछ समय के लिए इस समस्या को हल करें. इस दौरान, हम इस समस्या को Alphabet10 में ठीक कर देंगे:

ग्रूवी

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

Kotlin

android {
    packagingOptions {
        exclude("META-INF/proguard/androidx-annotations.pro")
    }
}

गड़बड़ियां ठीक की गईं

  • "100 जॉब" के लिए ज़रूरी एक और सुधार जोड़ा गया गड़बड़ी. बी/115560696
  • रेस की स्थितियों की वजह से, विदेशी कुंजी की कंस्ट्रेंट से जुड़ी गड़बड़ियों के लिए, कुछ समाधान जोड़े गए. b/114705286
  • मौजूदा Worker को ConstraintTrackingWorker.onStopped(boolean) कॉल सौंपे गए. b/114125093
  • Firebase JobDispatcher के लिए सही कम से कम बैकऑफ़ देरी लागू करें. b/113304626
  • थ्रेडिंग की बेहतर सुविधा, लाइब्रेरी के अंदर काम करने की गारंटी देती है.
  • LiveData की अंदरूनी तौर पर डुप्लीकेट कॉपी करने से जुड़ी संभावित समस्या को ठीक करें.

एपीआई में बदलाव

  • अब WorkManager.Configuration के हिस्से के तौर पर WorkerFactory तय करके, रनटाइम के दौरान अपने Worker इंस्टेंस बनाए जा सकते हैं. फ़ॉलबैक फ़ैक्ट्री DefaultWorkerFactory है, जो WorkManager के पिछले वर्शन के व्यवहार से मेल खाता है.
    • Worker और NonBlockingWorker के लिए डिफ़ॉल्ट कंस्ट्रक्टर को अब 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है. कृपया नए कंस्ट्रक्टर (Worker(Context, WorkerParameters)) का इस्तेमाल करें और super(Context, WorkerParameters) को कॉल करें; WorkManager के आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.
  • हमने अपने संगठन में, ListenableFuture आर्टफ़ैक्ट का इस्तेमाल करना शुरू कर दिया है. यह Guava पर निर्भर नहीं है. आने वाली रिलीज़ में, हम इस एपीआई में LookableFutures की सुविधा शामिल करेंगे. इस बदलाव के बाद, NonBlockingWorker को दिखाया जा सकेगा.
  • TestDriver.setInitialDelayMet(UUID) और TestDriver.setPeriodDelayMet(UUID) के ज़रिए, TestDriver में तय समय पर काम को ट्रिगर करने की सुविधा जोड़ें. b/113360060

नुकसान पहुंचाने वाले बदलाव

  • डिफ़ॉल्ट Worker और NonBlockingWorker कंस्ट्रक्टर काम नहीं करते हैं. कृपया जल्द से जल्द नए कंस्ट्रक्टर पर माइग्रेट करें. आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.

वर्शन 1.0.0-alpha08

27 अगस्त, 2018

गड़बड़ियां ठीक की गईं

  • WorkManager कॉम्पोनेंट को सीधे तौर पर बूट करने की जानकारी के तौर पर लेबल किया गया है. इससे उन्हें डायरेक्ट बूट के दौरान चालू नहीं किया जा सकता. आने वाले समय में, हम WorkManager का ऐसा वर्शन उपलब्ध कराएंगे जिसमें सीधे तौर पर बूट करने की जानकारी हो. बी/112665532
  • उस समस्या को ठीक कर दिया गया है, जिसकी दोबारा कोशिश करने पर वह काम नहीं कर रहा था. बी/112604021
  • बार-बार लागू न होने वाले काम को ठीक किया गया. यह ऊपर बताई गई समस्या से जुड़ा है. बी/112859683
  • जब ऐप्लिकेशन की प्रोसेस पहले से चल रही हो, तो बैकऑफ़ नीतियां लागू की जाती हैं.
  • Data में मौजूद अपवाद वाले मैसेज को ठीक कर दिया गया है, ताकि यह पता चल सके कि यह फ़ाइल 10 केबी की है.
  • JobScheduler की प्रोसेसिंग पूरी होने में लगने वाले कुछ समय के लिए, Configuration.setMaxSchedulerLimit(int) की ज़्यादा से ज़्यादा वैल्यू को घटाकर 50 किया गया. b/112817355

वर्शन 1.0.0-alpha07

16 अगस्त, 2018

गड़बड़ियां ठीक की गईं

  • नेगेटिव सीमाओं वाली संभावित SQL क्वेरी को ठीक किया गया, जो बिना सीमा वाले नतीजे दिखा सकती थी.
  • जिस काम का निष्पादन पूरा हो गया है वह अब अन्य शेड्यूलर में उस काम की सभी लंबित कॉपी को ठीक से रद्द कर देता है. इस वजह से, JobScheduler के लिए तय सीमा पार हो गई. b/111569265
  • ConstraintTracker में ConcurrentModificationException को ठीक किया गया. बी/112272753
  • रिटर्न टाइप एनोटेशन को Data.getBooleanArray(String) और Data.getIntArray(String) के एनोटेशन को @NonNull के बजाय @Nullable में बदला गया. बी/112275229

एपीआई में बदलाव

  • Worker अब नई क्लास, NonBlockingWorker का विस्तार करता है. इससे, ऐप्लिकेशन के मौजूदा इस्तेमाल पर कोई असर नहीं पड़ता. आने वाले समय में, NonBlockingWorker पर कस्टम थ्रेडिंग सुविधा काम करती है.
  • रिटर्न टाइप एनोटेशन को Data.getBooleanArray(String) और Data.getIntArray(String) के एनोटेशन को @NonNull के बजाय @Nullable में बदला गया. बी/112275229
  • Kotlin एक्सटेंशन: Map.toWorkData() के इस्तेमाल से रोक दी गई है. साथ ही, मौजूदा एपीआई के साथ ज़्यादा काम करने के लिए, टॉप लेवल workDataOf(vararg Pair<String, Any?>) जोड़े गए.

वर्शन 1.0.0-alpha06

1 अगस्त 2018

गड़बड़ियां ठीक की गईं

  • काम शेड्यूल करते समय, डेटाबेस को लॉक होने से बचाएं. b/111801342
  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से PeriodicWork, बैटरी बचाएं (डोज़) मोड में होने पर शेड्यूल पर नहीं चलता. b/111469837
  • उन कंस्ट्रेंट को ट्रैक करते समय रेस कंडिशन को ठीक करें जिनकी वजह से WorkManager क्रैश होता है. googlecodelabs/android-workmanager/issues/56
  • WorkRequest.Builder#build() का इस्तेमाल करते समय यूनीक WorkRequest बनाएं. b/111408337
  • RescheduleReceiver का इस्तेमाल सिर्फ़ तब चालू करें, जब WorkRequests को इसकी ज़रूरत हो. b/111765853

वर्शन 1.0.0-alpha05

24 जुलाई, 2018

एपीआई में बदलाव

  • WorkManager.getInstance() को अब @Nullable के बजाय @NonNull से एनोटेट किया जाता है. इसके बजाय, मैन्युअल तौर पर शुरू करने के मामलों में, अगर सिंगलटन सही तरीके से शुरू नहीं होता है, तो यह तरीका IllegalStateException देगा. यह एपीआई में किए गए बदलावों को ट्रैक करना.
  • नया एपीआई Configuration.Builder.setMinimumLoggingLevel(int) जोड़ा गया है, जो WorkManager को जानकारी देने की क्षमता को कंट्रोल कर सकता है. डिफ़ॉल्ट रूप से, WorkManager Log.INFO और इसके बाद के वर्शन को लॉग करता है.
  • Data.getString() का हस्ताक्षर बदल दिया गया है, ताकि अब इसे डिफ़ॉल्ट वैल्यू न लेनी पड़े (यह साफ़ तौर पर null है). एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.
  • कुछ तरीकों को @hide के तौर पर मार्क किया गया है, जो सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी हैं. इनमें Constraints कंस्ट्रक्टर, Data.toByteArray(), और Data.fromByteArray(byte[]) शामिल हैं. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.

गड़बड़ियां ठीक की गईं

  • WorkManager अब ऑटो-बैकअप के ज्ञात मामलों के दौरान काम का निष्पादन नहीं करता. इस वजह से, आपका ऐप्लिकेशन क्रैश हो सकता है. बी/110564377
  • JobScheduler का इस्तेमाल करते समय PeriodicWorkRequest की डबल-शेड्यूलिंग को ठीक किया गया. बी/110798652
  • डिवाइस के बंद होने के बाद भी PeriodicWorkRequest ठीक से काम नहीं कर रहे थे, इस समस्या को ठीक कर दिया गया है. b/111469837
  • Firebase JobDispatcher का इस्तेमाल करते समय शुरुआती देरी से जुड़ी समस्या ठीक की गई. b/111141023
  • रेस की कुछ संभावित स्थितियों और समय से जुड़ी समस्याओं को ठीक किया गया.
  • सही तरीके से BroadcastReceiver खाली किए गए, जिनकी अब ज़रूरत नहीं थी.
  • ज़बरदस्ती बंद किए जाने के बाद ऐप्लिकेशन रीस्टार्ट होने पर, फिर से शेड्यूल करने की परफ़ॉर्मेंस ऑप्टिमाइज़ की गई.
  • TestScheduler.setAllConstraintsMet(UUID) को दिए गए WorkRequest के क्रम में लगाने से पहले या बाद में कॉल करने की अनुमति दी गई. b/111238024

नुकसान पहुंचाने वाले बदलाव

  • WorkManager.getInstance() को अब @Nullable के बजाय @NonNull से एनोटेट किया जाता है.
  • Data.getString() का हस्ताक्षर बदल दिया गया है, ताकि अब इसे डिफ़ॉल्ट वैल्यू न लेनी पड़े (यह साफ़ तौर पर null है).
  • कुछ तरीकों को @hide के तौर पर मार्क किया गया है, जो सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी हैं. इनमें Constraints कंस्ट्रक्टर, Data.toByteArray(), और Data.fromByteArray(byte[]) शामिल हैं.

वर्शन 1.0.0-alpha04

26 जून, 2018

गड़बड़ियां ठीक की गईं

  • AlarmManager पर आधारित लागू करने के तरीके का इस्तेमाल करते समय, PeriodicWorkRequest अब सही तरीके से फिर से शेड्यूल किए जाते हैं.
  • फ़ोर्स स्टॉप या फिर से चालू होने के बाद, सभी कर्मियों को फिर से शेड्यूल करते समय संभावित ANR की गड़बड़ी ठीक की गई. b/110507716
  • अलग-अलग WorkManager एपीआई में, अमान्य वैल्यू वाले एनोटेशन जोड़े गए. b/110344065
  • वर्कर एक्ज़ीक्यूशन के दौरान, उन अपवादों को लॉग करें जिन्हें पहचाना नहीं जा सका. b/109900862
  • अगर आपको WorkManager के पुराने वर्शन पर रोल बैक करना है, तो इस डेटा को नुकसान पहुंचाने वाले डेटाबेस के माइग्रेशन की अनुमति दी जाती है. b/74633270
  • डुप्लीकेट इंप्लिसिट टैग बनाने पर होने वाले माइग्रेशन क्रैश को ठीक किया गया. ऐसा बहुत कम होता है, जो तब होती है, जब आपने खुद इस इंप्लिसिट टैग फ़ॉर्मैट का इस्तेमाल किया हो.

वर्शन 1.0.0-alpha03

19 जून, 2018

गड़बड़ियां ठीक की गईं

  • AlarmManager के आधार पर लागू करने की प्रोसेस में रेस कंडिशन को ठीक किया गया. b/80346526.

  • डिवाइस को फिर से चालू करने के बाद, JobScheduler का इस्तेमाल करते समय डुप्लीकेट जॉब ठीक किए गए.

  • कॉन्टेंट यूआरआई वाले जॉब अब फिर से चालू होने पर लागू रहते हैं. b/80234744

  • दस्तावेज़ से जुड़े अपडेट. b/109827628, b/109758949, b/80230748

  • WorkRequest को फिर से लाइन में जोड़ने के दौरान होने वाले क्रैश की समस्या ठीक की गई. b/109572353.

  • work-runtime-ktx डिपेंडेंसी का इस्तेमाल करते समय, Kotlin कंपाइलर की चेतावनियों को ठीक किया गया.

  • WorkManager अब Room वर्शन 1.1.1-rc1 का इस्तेमाल करता है.

एपीआई में बदलाव

  • WorkContinuation.getStatuses() का सिंक्रोनस वर्शन getStatusesSync() जोड़ा गया.
  • Worker के पास यह अंतर करने की सुविधा होती है कि उपयोगकर्ता की ओर से शुरू की गई रद्द करने की प्रोसेस और कुछ समय के लिए ओएस के अनुरोध को रोकने के लिए किए गए अनुरोधों को अलग किया जा सकता है. अगर किसी तरह के स्टॉप का अनुरोध किया गया है, तो Worker.isStopped() true लौटाता है. जब काम साफ़ तौर पर रद्द किया गया हो, तो Worker.isCancelled() true नतीजे दिखाता है. b/79632247
  • एपीआई 28 पर JobParameters#getNetwork() के लिए सहायता जोड़ें. यह Worker.getNetwork() से सार्वजनिक है.
  • Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) को जोड़ा गया, ताकि आप लागू कर सकें कि JobScheduler या AlarmManager को कितनी नौकरियां भेजी जा सकती हैं. यह WorkManager को आपके सभी उपलब्ध JobScheduler स्लॉट लेने से रोकने में मदद करता है.
  • Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) को जोड़ा गया, जो WorkManager के इस्तेमाल के लिए सुरक्षित JobScheduler जॉब आईडी की रेंज तय करने में मदद करता है. b/79996760
  • Worker.getRunAttemptCount(), दिए गए Worker के लिए मौजूदा रन काउंट दिखाता है. b/79716516
  • WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), आपको यूनीक PeriodicWorkRequest के लिए, सूची में शामिल करने की अनुमति देता है. b/79600647
  • WorkManager.cancelAllWork() सभी Worker रद्द करता है. WorkManager पर निर्भर लाइब्रेरी, अंदरूनी स्थिति के अतिरिक्त क्लीनअप के लिए, WorkManager.getLastCancelAllTimeMillis() का इस्तेमाल करके क्वेरी कर सकती हैं कि इस तरीके को आखिरी बार कब कॉल किया गया था.
  • पूरे हो चुके जॉब को इंटरनल डेटाबेस से हटाने के लिए, WorkManager.pruneWork() को जोड़ा गया. b/79950952, b/109710758

व्यवहार में होने वाले बदलाव

  • सभी WorkRequest के लिए इंप्लिसिट टैग जोड़ा गया है, जो Worker के लिए पूरी तरह क्वालिफ़ाइड क्लास का नाम है. इससे, tag का इस्तेमाल किए बिना या id के उपलब्ध न होने पर भी WorkRequest को हटाया जा सकता है. b/109572351

नुकसान पहुंचाने वाले बदलाव

  • Worker.WorkerResult का नाम बदलकर Worker.Result किया गया.
  • Worker.onStopped में अब एक अतिरिक्त isCancelled पैरामीटर है, जो Worker को साफ़ तौर पर रद्द किए जाने पर,true पर सेट किया गया है.

वर्शन 1.0.0-alpha02

24 मई, 2018

गड़बड़ियां ठीक की गईं

  • State.isFinished() पर NullPointerException को ठीक किया गया. b/79550068
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से Workers को Application.onCreate() को फिर से शेड्यूल करना था. बी/79660657
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से, ओएस की अनुमति से ज़्यादा काम शेड्यूल किया जा सकता है. b/79497378
  • Worker से जुड़े वेक लॉक के क्लीनअप को बैकग्राउंड थ्रेड में ले जाया गया.
  • सभी रुके हुए काम पूरे होने पर, AlarmManager लागू करने की प्रोसेस सही तरीके से हट जाती है.
  • क्लीनअप एसक्यूएल क्वेरी को ठीक किया गया, जिससे अंग्रेज़ी के अलावा दूसरी भाषाओं पर असर पड़ा. बी/80065360
  • Data में float के लिए सहायता जोड़ी गई. b/79443878
  • Data.Builder.putAll() अब Builder का इंस्टेंस दिखाता है. b/79699162
  • दस्तावेज़ों में ज़्यादा JavaScript और समाधान. b/79691663

एपीआई में बदलाव

  • Worker ऐप्लिकेशन रोके जाने पर प्रतिक्रिया दे सकते हैं. Worker.isStopped() का इस्तेमाल करके, यह देखा जा सकता है कि Worker को रोका गया है या नहीं. कम जगह में क्लीनअप करने के लिए, Worker.onStopped() का इस्तेमाल किया जा सकता है.
  • Worker.getTags() एपीआई, Worker से जुड़े टैग का Set दिखाता है.
  • उन एपीआई के लिए javax.time.Duration ओवरलोड जोड़े गए जो कुल समय और TimeUnit, दोनों का इस्तेमाल करते हैं. इस डिवाइस को @RequiresApi(26) सुरक्षित रखता है.
  • WorkManager एक्सटेंशन, androidx.work.ktx पैकेज से androidx.work पैकेज में ले जाए गए हैं. पुराने एक्सटेंशन अब काम नहीं करते. आने वाले वर्शन में इन्हें हटा दिया जाएगा.
  • Configuration.withExecutor() के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, Configuration.setExecutor() का इस्तेमाल करें.

वर्शन 1.0.0-alpha01

8 मई, 2018

WorkManager आसानी से शेड्यूल करने और उन्हें लागू करने में मदद करता है गारंटी के साथ, कंस्ट्रेंट की जानकारी वाले बैकग्राउंड में काम करने की सुविधा मिलती है. यह शुरुआती रिलीज़ 1.0.0-alpha01 है.