WorkManager
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 28 जनवरी, 2026 | 2.11.1 | - | - | - |
डिपेंडेंसी का एलान करना
WorkManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी:
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { def work_version = "2.11.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.11.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 को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 2.11
वर्शन 2.11.1
28 जनवरी, 2026
androidx.work:work-*:2.11.1 रिलीज़ हो गया है. वर्शन 2.11.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- Android 15 और इसके बाद के वर्शन पर कनेक्टिविटी ब्लॉक होने पर, नेटवर्क की स्थिति से जुड़ी पाबंदी को पास करने की समस्या ठीक की गई. (I5abb7, b/465016918)
- नेटवर्क की पाबंदी को ट्रैक करने की सुविधा से जुड़ी समस्या ठीक की गई है. इसमें, शुरुआती वैल्यू के लिए ब्लॉक किए गए स्टेटस को ध्यान में नहीं रखा जाता था. (I8a0a2, b/452081708)
- Android 15 और इसके बाद के वर्शन पर कनेक्टिविटी ब्लॉक होने के दौरान, नेटवर्क अनुरोध की पाबंदी को पूरा करने से जुड़ी समस्या को ठीक किया गया है. (I60f24, b/452081708)
वर्शन 2.11.0
22 अक्टूबर, 2025
androidx.work:work-*:2.11.0 रिलीज़ हो गया है. वर्शन 2.11.0 में ये बदलाव शामिल हैं.
2.10.0 के बाद हुए अहम बदलाव:
minSdkको एपीआई लेवल 21 से एपीआई लेवल 23 पर अपडेट कर दिया गया है.WorkManagerके कॉन्फ़िगरेशन बिल्डर में, एपीआईsetRemoteSessionTimeoutMillisको जोड़ा गया है. इससे यह कॉन्फ़िगर किया जा सकेगा किRemoteWorkManagerसेशन, आखिरी बार इस्तेमाल किए जाने के बाद कितने समय तक चालू रहेगा.
वर्शन 2.11.0-rc01
08 अक्टूबर, 2025
androidx.work:work-*:2.11.0-rc01 रिलीज़ हो गया है. वर्शन 2.11.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 2.11.0-beta01
24 सितंबर, 2025
androidx.work:work-*:2.11.0-beta01 रिलीज़ हो गया है. वर्शन 2.11.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
WorkManagerTestDriverमेंstopRunningWorkWithReasonजोड़ें. (Ie53b2, b/439955564)
गड़बड़ियां ठीक की गईं
- फ़ोरग्राउंड सेवा के रुकने की समस्या ठीक की गई. ऐसा तब होता था, जब कुछ कमांड प्रोसेस होने के लिए बाकी होती थीं (Iae822, b/432069314)
- रिमोट को-रूटीन वर्कर के रिमोट सेवा से अनबाइंड न होने की समस्या ठीक की गई (I842f2, b/247113322)
वर्शन 2.11.0-alpha01
27 अगस्त, 2025
androidx.work:work-*:2.11.0-alpha01 रिलीज़ हो गया है. वर्शन 2.11.0-alpha01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- minSdk को API 21 से API 23 पर अपडेट कर दिया गया है (Ibdfca, b/380448311, b/435705964, b/435705223)
- WorkManager के कॉन्फ़िगरेशन बिल्डर में एपीआई
setRemoteSessionTimeoutMillisजोड़ा गया है. इससे यह कॉन्फ़िगर किया जा सकेगा कि RemoteWorkManager सेशन, आखिरी बार इस्तेमाल किए जाने के बाद कितने समय तक चालू रहेगा. (Ib23c8) WorkRequest.Builderमें एक्सपेरिमेंटल एपीआई जोड़ें, ताकि सिस्टम की वजह से काम में रुकावट आने पर बैकऑफ़ लागू किया जा सके. (Ie2dc7, b/335513480)- कस्टम
WorkerFactoryलागू करने के लिए बनाए जा रहेTestListenableWorkerBuilderसे अलग वर्कर क्लास में पास करने के लिए, टेस्ट एपीआई जोड़ें (If6bff, b/389154854)
गड़बड़ियां ठीक की गईं
SharedNetworkCallbackमें नेटवर्क की क्षमताओं को कैश मेमोरी में सेव करें, ताकि गैर-ज़रूरी आईपीसी (Ie4027, b/427115602) को रोका जा सके- नेटवर्क की पाबंदी के आकलन से जुड़ी समस्या को ठीक किया गया है. इस समस्या की वजह से, पहले वर्क आइटम के बाद के वर्क आइटम को मौजूदा नेटवर्क की सुविधाएं नहीं मिलती थीं. इसके बजाय, टाइम आउट होने के बाद
ConstraintsNotMetकी समस्या आती थी (Ib6a66, b/427115602)
वर्शन 2.10
वर्शन 2.10.5
24 सितंबर, 2025
androidx.work:work-*:2.10.5 रिलीज़ हो गया है. वर्शन 2.10.5 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- फ़ोरग्राउंड सेवा के रुकने की समस्या ठीक की गई. ऐसा तब होता था, जब कुछ कमांड प्रोसेस होने के लिए बाकी होती थीं (Iae822, b/432069314)
वर्शन 2.10.4
10 सितंबर, 2025
androidx.work:work-*:2.10.4 रिलीज़ हो गया है. वर्शन 2.10.4 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
RemoteCoroutineWorkerके रिमोट सेवा को अनबाइंड न कर पाने की समस्या को ठीक किया गया (I842f2, b/247113322)
वर्शन 2.10.3
30 जुलाई, 2025
androidx.work:work-*:2.10.3 रिलीज़ हो गया है. वर्शन 2.10.3 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसमें पिछले वर्कर की तरह ही नेटवर्क की पाबंदियां वाले वर्कर, पाबंदियों के पूरा न होने की शिकायत करते थे. (b/427115602).
वर्शन 2.10.2
18 जून, 2025
androidx.work:work-*:2.10.2 रिलीज़ हो गया है. वर्शन 2.10.2 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- नेटवर्क अनुरोधों और डिफ़ॉल्ट सुविधाओं के साथ वर्कर को बनाए रखने से जुड़ी समस्या को ठीक किया गया है. इस समस्या की वजह से, हटाई गई सुविधाओं को फिर से जोड़ा जा रहा था. इससे नेटवर्क की पाबंदियों वाले वर्कर ठीक से काम नहीं कर पा रहे थे. (b/409716532)
- उस बग को ठीक किया गया है जिसकी वजह से, नेटवर्क की पाबंदियों वाले कर्मचारियों के अनुरोध तुरंत पूरे नहीं होते थे. ऐसा इसलिए होता था, क्योंकि नेटवर्क और सुविधाएं उपलब्ध होने के बावजूद, पाबंदियां पूरी नहीं होती थीं. (b/423403088)
वर्शन 2.10.1
23 अप्रैल, 2025
androidx.work:work-*:2.10.1 रिलीज़ हो गया है. वर्शन 2.10.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
WorkManagerके रजिस्ट्रेशन सेTooManyRequestsExceptionको हटाए जाने की संभावना कम करें.NetworkCallbackका इस्तेमाल, कंस्ट्रेंट ट्रैकिंग के लिए किया जाता है. (b/231499040, b309d5).
वर्शन 2.10.0
30 अक्टूबर, 2024
androidx.work:work-*:2.10.0 रिलीज़ हो गया है. वर्शन 2.10.0 में ये बदलाव शामिल हैं.
वर्शन 2.9.1 के बाद हुए अहम बदलाव
WorkManagerसे नौकरियों में ट्रेस टैग जोड़े गए हैं. इससे ‘adb shell dumpsys jobscheduler’ को समझना बहुत आसान हो जाता है, क्योंकि इसमें एक्ज़ीक्यूट किए जा रहे वर्कर का नाम शामिल होगा.WorkManagerके मुख्य हिस्सों के आस-पास ट्रेस सेक्शन भी जोड़े जाते हैं.Configuration.workerCoroutineContextको डिस्पैचर के कंट्रोल के लिए जोड़ा गया था. यहांCoroutineWorkerको लागू किया जाता है.- डेवलपर,
NetworkRequestतरीके का इस्तेमाल करके, वर्कर के लिएNetworkRequestको कंस्ट्रेंट के तौर पर सेट कर सकते हैं.Constraints.setRequiredNetworkRequestइससे यह तय किया जा सकता है कि वर्कर को किस नेटवर्क पर चलाना है. WorkManager2.10.0 को अब SDK 35 के साथ कंपाइल किया गया है. साथ ही, इसमें SDK 35 के साथ काम करने के लिए कई बदलाव किए गए हैं.
वर्शन 2.10.0-rc01
24 अक्टूबर, 2024
androidx.work:work-*:2.10.0-rc01 रिलीज़ हो गया है. वर्शन 2.10.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 2.10.0-beta01
2 अक्टूबर, 2024
androidx.work:work-*:2.10.0-beta01 रिलीज़ हो गया है. वर्शन 2.10.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 2.10.0-alpha04
18 सितंबर, 2024
androidx.work:work-*:2.10.0-alpha04 रिलीज़ हो गया है. वर्शन 2.10.0-alpha04 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- फ़ोरग्राउंड सेवा के टाइप के आधार पर, एक्ज़ीक्यूशन टाइम आउट की वजह से फ़ोरग्राउंड वर्कर के बंद होने की वजह
STOP_REASON_FOREGROUND_SERVICE_TIMEOUTजोड़ें. (Ibd0af)
वर्शन 2.10.0-alpha03
4 सितंबर, 2024
androidx.work:work-*:2.10.0-alpha03 रिलीज़ हो गया है. वर्शन 2.10.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
WorkManagerसे नौकरियों में ट्रेस टैग जोड़े गए हैं. इससे ‘adb shell dumpsys jobscheduler’ को समझना बहुत आसान हो जाता है, क्योंकि इसमें एक्ज़ीक्यूट किए जा रहे वर्कर का नाम शामिल होगा.WorkManagerके मुख्य हिस्सों के आस-पास ट्रेस सेक्शन भी जोड़े जाते हैं.
एपीआई में हुए बदलाव
- WorkManager 2.10.0 को अब SDK 35 के साथ कंपाइल किया गया है.
- ‘शॉर्ट सर्विस’ और ‘डेटा सिंक’ टाइप वाले फ़ोरग्राउंड वर्कर के टाइम आउट होने और
WorkManagerकेstopSelf()को कॉल न करने पर एएनआर की समस्या को ठीक किया गया. यह सुधार सिर्फ़ उन डिवाइसों पर लागू होता है जिनमें एपीआई 34 और 35 है. इन डिवाइसों में फ़ोरग्राउंड सेवा के टाइप पेश किए गए थे. (ca06b2, b/364508145) - नए
WorkerParametersएपीआई, जिनकी मदद सेWorkerFactoryका इस्तेमाल करते समय,Workerसे बाइंड होने वाली रिमोट प्रोसेस को स्विच किया जा सकता है. (Ibdc8a, Ie8a90, I7373f)
गड़बड़ियां ठीक की गईं
WorkManagerकी वजह से होने वाले क्रैश को ठीक किया गया है.ऐसा तब होता है, जब लंबे समय तक चलने वाले वर्कर (जैसे, फ़ोरग्राउंड वर्कर) को फिर से शुरू करने की कोशिश की जाती है. ऐसा तब होता है, जब काम के फ़ोरग्राउंड टाइप में Android 14 की ज़रूरी अनुमतियां होती हैं, जिन्हें रद्द कर दिया गया था. (b/333957914)- नए प्लैटफ़ॉर्म एपीआई को ऐक्सेस करने के लिए, मैन्युअल तरीके से आउटलाइन बनाने की सुविधा हटा दी गई है. ऐसा इसलिए, क्योंकि AGP 7.3 या इसके बाद के वर्शन (जैसे, R8 वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर, एपीआई मॉडलिंग के ज़रिए यह काम अपने-आप हो जाता है. साथ ही, AGP 8.1 या इसके बाद के वर्शन (जैसे, D8 वर्शन 8.1) का इस्तेमाल करने पर, सभी बिल्ड के लिए यह काम अपने-आप हो जाता है. AGP का इस्तेमाल न करने वाले क्लाइंट को, D8 के 8.1 या उसके बाद के वर्शन पर अपडेट करने का सुझाव दिया जाता है. ज़्यादा जानकारी के लिए यह लेख देखें. (Ia60e0, b/345472586)
वर्शन 2.10.0-alpha02
17 अप्रैल, 2024
androidx.work:work-*:2.10.0-alpha02 रिलीज़ हो गया है. वर्शन 2.10.0-alpha02 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
WorkManagerमें कॉन्फ़िगर किए जा सकने वाले@RestrictToTracerके ज़रिए, ट्रेस स्पैन को भेजने की सुविधा जोड़ी गई. (I17d7f, b/260214125)Configuration.workerCoroutineContextको डिस्पैचर के कंट्रोल के लिए जोड़ा गया था. यहांCoroutineWorkerको लागू किया जाता है. इससेWorkManagerमेंDispatchers.Defaultका इस्तेमाल पूरी तरह से बंद करने में मदद मिलती है. (Icd1b7)- Workers के लिए कस्टम अपवाद हैंडलर जोड़े गए (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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- डेवलपर,
NetworkRequestतरीके का इस्तेमाल करके, वर्कर के लिएNetworkRequestको कंस्ट्रेंट के तौर पर सेट कर सकते हैं.Constraints.setRequiredNetworkRequestइससे यह तय किया जा सकता है कि वर्कर को किस नेटवर्क पर चलाना है.
एपीआई में हुए बदलाव
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()तरीके से याWorkInfoसेgetStopReason()तरीके से क्वेरी किया जा सकता है. setNextScheduleTimeOverrideकी मदद से, समय-समय पर काम करने वाले लोगों के काम का सटीक शेड्यूल बनाना. इससे, समय-समय पर होने वाले अगले टास्क की शेड्यूल अपने-आप कैलकुलेट हो जाती है. इसका इस्तेमाल, अडैप्टिव रीफ़्रेश टाइम, कस्टम रीट्राई बिहेवियर या हर सुबह उपयोगकर्ता के उठने से पहले न्यूज़फ़ीड वर्कर को चलाने जैसी ऐडवांस सुविधाओं को लागू करने के लिए किया जा सकता है. इन तकनीकों के साथExistingPeriodicWorkPolicy.UPDATEका इस्तेमाल किया जाना चाहिए, ताकि अगले वर्कर को शेड्यूल करते समय, मौजूदा वर्कर को रद्द न किया जा सके.- WorkManager की टेस्टिंग, प्रोडक्शन से मैच करने वाले थ्रेडिंग के साथ की जाती है.
ExecutorsMode.PRESERVE_EXECUTORSका इस्तेमालinitializeTestWorkManagerमें किया जा सकता है. इससेConfigurationमें सेट किए गए एक्ज़ीक्यूटर को सुरक्षित रखा जा सकता है और असली मुख्य थ्रेड का इस्तेमाल किया जा सकता है. - कोरूटीन एपीआई, जैसे कि
CoroutineWorkerको अतिरिक्त आर्टफ़ैक्ट work-runtime-ktx से मुख्य आर्टफ़ैक्ट work-runtime में ले जाया गया है. work-runtime-ktx अब खाली है.
एपीआई में हुए बदलाव
stopReasonकोWorkInfoमें जोड़ा गया है. यह वर्कर के चलने के बाद,stopReasonको उपलब्ध कराता है. यह रिपोर्टिंगstopReasonमें काम आ सकता है, क्योंकि वर्कर को रोकने के बाद, ऐप्लिकेशन को बहुत तेज़ी से बंद किया जा सकता है. (I21386)- कॉन्फ़िगरेशन के ज़रिए
Clockको सेट करने की अनुमति दें. साथ ही, इसका इस्तेमाल वर्कर टेस्ट के एक्ज़ीक्यूशन के क्रम को तय करने के लिए किया जा सकता है. (Ic586e) getStopReason()मेंListenableWorkerतरीका जोड़ा गया है. इससे यह पता चलता है कि वर्कर को क्यों रोका गया. (I07060)- लीक हुए संसाधनों के बारे में Closeguard की चेतावनी से बचने के लिए,
WorkManagerTestInitHelper#closeWorkDatabase()जोड़ा गया. (Ia8d49) WorkInfoका कंस्ट्रक्टर अब सार्वजनिक तौर पर उपलब्ध है. यह टेस्टिंग के दौरान काम आ सकता है. (Ia00b6, b/209145335)work-runtime-ktxअब खाली है. साथ ही,CoroutineWorkerऔर Kotlin से जुड़ी अन्य सुविधाएं अब मुख्य work-runtime आर्टफ़ैक्ट में उपलब्ध हैं. (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 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
WorkInfo.stopReasonऔरListenableWorker.stopReasonसे मिले स्टॉप की वजहों के लिए, कॉन्सटेंट जोड़े गए (I0cc00)
वर्शन 2.9.0-alpha02
26 जुलाई, 2023
androidx.work:work-*:2.9.0-alpha02 रिलीज़ हो गया है. वर्शन 2.9.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- अब
WorkManagerयह जानकारी देता है कि किसी वर्कर को पहले क्यों रोका गया था. इसे वर्कर सेgetStopReason()तरीके से याWorkInfoसेgetStopReason()तरीके से क्वेरी किया जा सकता है.
एपीआई में हुए बदलाव
stopReasonकोWorkInfoमें जोड़ा गया है. यह वर्कर के चलने के बादstopReasonउपलब्ध कराता है. यह रिपोर्टिंगstopReasonमें काम आ सकता है, क्योंकि वर्कर के बंद होने के बाद, ऐप्लिकेशन को बहुत तेज़ी से बंद किया जा सकता है. (I21386)- कॉन्फ़िगरेशन के ज़रिए Clock को सेट करने की अनुमति दें. साथ ही, इसका इस्तेमाल Worker टेस्ट के एक्ज़ीक्यूशन के क्रम को तय करने के लिए करें. (Ic586e)
getStopReason()मेंListenableWorkerतरीका जोड़ा गया है. इससे यह पता चलता है कि वर्कर को क्यों रोका गया. (I07060)- लीक हुए संसाधनों के बारे में Closeguard की चेतावनी से बचने के लिए,
WorkManagerTestInitHelper#closeWorkDatabase()जोड़ा गया. (Ia8d49)
गड़बड़ियां ठीक की गईं
overrideNextScheduleTimeका इस्तेमाल करकेoverrideNextScheduleTimeको बायपास करने की सुविधा जोड़ी गई है. साथ ही, जांच से जुड़ी समस्याओं को ठीक किया गया है.TestDriver(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और Kotlin से जुड़ी अन्य सुविधाएं अब मुख्य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में एएनआर की समस्या को ठीक किया गया है. पहले, यह एक साथ दो ब्रॉडकास्ट को सही तरीके से हैंडल नहीं करता था. (b/236906724)
वर्शन 2.8.0
8 फ़रवरी, 2023
androidx.work:work-*:2.8.0 रिलीज़ हो गया है. वर्शन 2.8.0 में ये बदलाव शामिल हैं.
2.7.0 के बाद हुए ज़रूरी बदलाव
नई सुविधाएं
WorkRequestsको अपडेट करने की सुविधा जोड़ी गई है. इससे, ओरिजनल एनक्यू टाइम, चेनिंग वगैरह को सुरक्षित रखा जा सकेगा. इस सुविधा के बारे में ज़्यादा जानने के लिए, ज़्यादा जानकारी वाली ब्लॉग पोस्ट पढ़ें. साथ ही, ज़्यादा जानकारी के लिएWorkManager.updateWorkऔरExistingPeriodicWorkPolicy.UPDATEके लिए javadocs देखें.
एपीआई में हुए बदलाव
WorkManager.updateWorkको जोड़ा गया है, ताकि काम को अपडेट किया जा सके. इससे काम को ओरिजनल कतार में लगाने का समय और चेनिंग की सुविधा बनी रहेगी.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATEको जोड़ा गया. इस नीति की मदद से, समय-समय पर किए जाने वाले काम को नाम के हिसाब से अपडेट किया जा सकता है. यह मौजूदाREPLACEके जैसा ही है, लेकिन यह कम दखल देने वाला है: अगर कोई वर्कर फ़िलहाल चल रहा है, तो यह उसे रद्द नहीं करता है. साथ ही, यह enqueue समय को बनाए रखता है. शुरुआती देरी और अवधि की गणना, अपडेट के समय के बजाय ओरिजनल enqueue समय से की जाती है.REPLACEको इसलिए बंद कर दिया गया, ताकिREPLACEऔरUPDATEके बीच अंतर करने में लोगों को परेशानी न हो. अगर आपको अब भीREPLACEके पिछले सिमैंटिक को बनाए रखना है, तोCANCEL_AND_REENQUEUEका इस्तेमाल किया जा सकता है. यहREPLACEके जैसा ही है. (I985ed, b/219446409)- शेड्यूलिंग से जुड़ी गड़बड़ियों को रोकने की सुविधा जोड़ी गई. इसके लिए,
Consumer<Throwable>को setSchedulingExceptionHandler के ज़रिए उपलब्ध कराया गया है) - WorkManager को शुरू करते समय कोई समस्या हुई है या नहीं, यह पता लगाने के लिए setInitializationExceptionHandler के ज़रिए
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)RxWorkerअब RxJava 2 और RxJava 3, दोनों के लिए उपलब्ध है. इसमेंsetForeground,Completableदिखाता है. इसका इस्तेमालsetForegroundInfoAsyncके बजाय किया जा सकता है.setForegroundInfoAsync,ListenableFutureदिखाता है- RxJava 2 और RxJava 3, दोनों के लिए
RxWorkerमेंgetForegroundInfo,Singleदिखाता है. इसका इस्तेमालgetForegroundInfoAsyncके बजाय किया जा सकता है, जोListenableFutureदिखाता है. (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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
equalsमेंequalsतरीके को ठीक किया गया है. इससे पहले, नई जनरेशन की जानकारी को ध्यान में नहीं रखा जाता था.WorkInfo(4977cc)
वर्शन 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()को जोड़ा गया है, जो किसी वर्कर के जनरेशन की जानकारी देते हैं. अगर किसी वर्कर कोExistingPeriodicWorkPolicy.UPDATEका इस्तेमाल करकेWorkManager.updateWorkया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को इसलिए बंद कर दिया गया, ताकिREPLACEऔरUPDATEके बीच अंतर करने में आसानी हो. इन दोनों के नाम काफ़ी मिलते-जुलते हैं. अगर आपको अब भी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 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- अब सीधे तौर पर कंस्ट्रेंट बनाए जा सकते हैं. इसके लिए, बिल्डर का इस्तेमाल करने की ज़रूरत नहीं है. यह 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 को सीधे तौर पर बनाने के लिए, हेल्पर तरीके
WorkQuery.fromStates,WorkQuery.fromUniqueWorkNames,WorkQuery.fromTagsजोड़े गए. (If48f2, b/199919736) - आने वाले समय में उपलब्ध होने वाले एसडीके के लिए, BuildCompat के एक्सपेरिमेंटल तरीके जोड़े गए (Iafd82, b/207528937)
WorkerमेंgetForegroundInfoजोड़ें. (Ic1ead)- आईडी से सीधे WorkQuery बनाने के लिए, हेल्पर तरीके
WorkQuery.fromIdsजोड़े गए. (Ie5bdf, b/199919736) - RxWorker में अब
setForegroundवापस लाने वालाCompletableहै, जिसका इस्तेमालsetForegroundInfoAsyncकी जगह किया जा सकता है.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की जगह किया जा सकता है.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)- काम से जुड़े ऐसे अनुरोधों को तेज़ी से पूरा करने के लिए मार्क करने पर तुरंत अपवाद दिखता है जिन्हें पूरा करने में देरी हो रही है. bef1762
वर्शन 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 में मौजूद expedited jobs को काम सौंपता है. वहीं, 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 के इस्तेमाल से जुड़ी समस्या को कम करता है.
एपीआई में हुए बदलाव
- Android 12 (S) के लिए, प्लैटफ़ॉर्म के एपीआई स्थिर हैं. इसलिए,
@ExperimentalExpeditedWorkएपीआई हटा दिए गए हैं. (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 रिलीज़ में किए गए बदलाव भी शामिल हैं.
एपीआई में हुए बदलाव
ListenableWorker.setForegroundAsync()का अब इस्तेमाल किया जा सकता है.- हमारा सुझाव है कि जब भी हो सके,
WorkRequest.Builder.setExpedited(...)एपीआई का इस्तेमाल करें. जब ऐप्लिकेशन पर फ़ोरग्राउंड सेवा से जुड़ी पाबंदियां लागू नहीं होती हैं, तब डेवलपर बेहतर तरीके से सहायता पाने के लिएListenableWorker.setForegroundAsync()एपीआई का इस्तेमाल कर सकते हैं. - अगर ऐप्लिकेशन पर फ़ोरग्राउंड सेवा से जुड़ी पाबंदियां लागू हैं, तो
ListenableWorker.setForegroundAsync()को कॉल करने पर, ForegroundServiceStartNotAllowedException दिखेगा.
गड़बड़ियां ठीक की गईं
- जल्दी पूरे होने वाले कामों को फिर से शेड्यूल करने पर, उन्हें जल्दी पूरा नहीं किया जाता. ये नियमित जॉब बन जाती हैं.
वर्शन 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(...)एपीआई लॉन्च किया है.ऐप्लिकेशन अब बैकग्राउंड में होने पर, फ़ोरग्राउंड सेवा लॉन्च नहीं कर सकते. इसलिए, लंबे समय तक चलने वाले ऐसे काम के लिए बेहतर सहायता पाने के लिए ऐप्लिकेशन,
WorkRequestको तेज़ी से पूरा होने वाला के तौर पर मार्क कर सकते हैं. पहले, ऐसे काम को फ़ोरग्राउंड सेवा के लाइफ़साइकल से जोड़ा जाता था.यह एपीआई,
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 को शुरू करने के लिए, अब
androidx.startupका इस्तेमाल किया जाता है. अगर आपने पहलेtools:node="remove"का इस्तेमाल किया था, तो आपको WorkManager को शुरू करने के लिए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को सही तरीके से स्टोरेज खाली करने में मदद मिलती है. aosp/1730694RemoteListenableWorkerअबRemoteWorkerServiceसे सही तरीके से अनबाइंड हो जाता है. इससेRemoteWorkerServiceको सही तरीके से डेटा मिटाने की अनुमति मिलती है. aosp/1743817ForceStopRunnableअब सिर्फ़ मुख्य ऐप्लिकेशन प्रोसेस में चलता है. यह एक ऑप्टिमाइज़ेशन है. इससे, एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, संसाधन से जुड़ी समस्या नहीं होती. 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()एपीआई जोड़ें, जो ListenableWorker काoutputDataदिखाता है. (Ie51e3)
गड़बड़ियां ठीक की गईं
- ओईएम की गड़बड़ी को ठीक करने का तरीका जोड़ा गया है. इस गड़बड़ी की वजह से,
AlarmManagerएपीआई का इस्तेमाल करते समय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अब यह पक्का करता है कि हरWorkRequestके लिए बैकअप जॉब मौजूद हों. ऐसा तब होता है, जबApplicationको मेल खाने वाली जॉब से शुरू किया जा रहा हो. इससे नौकरी के एक्ज़ीक्यूशन की विश्वसनीयता में काफ़ी सुधार होता है. (b/172475041, aosp/1489577) WorkManager, डेटाबेस के साइज़ को बढ़ने से रोकता है. इसके लिए, यह उस बफ़र अवधि को कम करता है जिसके दौरानWorkRequestपूरे होने के बादWorkRequestको ट्रैक किया जाता है. पहले इसकी अवधि7दिन थी. इसे घटाकर1दिन + keepResultsForAtLeast की अवधि कर दिया गया है. (aosp/1419708)TestListenableWorkerBuilderअबListenableWorkerको बढ़ाने वाली रीफ़ाइड क्लास के साथ काम करता है, ताकि टेस्टिंग को आसान बनाया जा सके. (aosp/1443299, b/169787349)- Android Studio Arctic Fox का इस्तेमाल करते समय, अब WorkManager inspector उपलब्ध है.
वर्शन 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)
- किसी बंद हो चुकी प्रोसेस से अनबाइंड करने की कोशिश करते समय,
NoSuchElementExceptions को अनदेखा करने से जुड़ी गड़बड़ी को ठीक किया गया. (aosp/1530589) ConstraintTrackingWorkerको बेहतर बनाओ, ताकि सिर्फ़ तबListenableWorkerको रोका जा सके, जब उसे पहले से न रोका गया हो. (aosp/1496844, b/172946965)- androidx.work लाइब्रेरी को Java 8 को टारगेट करने के लिए अपडेट करें (Ibd2f2)
वर्शन 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*एपीआई का इस्तेमाल करते समय, फ़ोरग्राउंड सेवा को रोकने पर प्लैटफ़ॉर्म में आने वाली गड़बड़ी को ठीक करने का तरीका जोड़ा गया. (b/170924044, aosp/1489901)
वर्शन 2.5.0-beta01
28 अक्टूबर, 2020
androidx.work:work-*:2.5.0-beta01 रिलीज़ हो गया है. वर्शन 2.5.0-beta01 में ये बदलाव शामिल हैं.
नई सुविधाएं
WorkManager, प्रोसेस में मौजूद शेड्यूलर से पिक अप किए जा सकने वालेWorkRequestकी संख्या को अपने-आप थ्रॉटल कर देता है. अनुरोधों को अब भी फ़र्स्ट इन, फ़र्स्ट आउट (FIFO) के क्रम में पूरा किया जाता है. (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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- WorkQuery में कोई एपीआई जोड़ें, ताकि
WorkInfos को क्वेरी करने के लिएids का इस्तेमाल किया जा सके. (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वर्क अनुरोध. इन एपीआई मेंLiveDataवैरिएंट शामिल नहीं हैं, ताकि कई प्रोसेस में SQLite के इस्तेमाल से जुड़ी समस्या से बचा जा सके.enqueue,cancel, औरqueryको किए गए सभी कॉल, एआईडीएल का इस्तेमाल करकेprimaryऐप्लिकेशन प्रोसेस को फ़ॉरवर्ड किए जाते हैं. साथ ही, ये कॉलListenableFutureको फ़ॉरवर्ड किए जाते हैं. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)
- आम तौर पर, WorkManager को हर ऐप्लिकेशन प्रोसेस में शुरू करना होता है. यह सही नहीं है, क्योंकि इससे SQLite में डेटा को लेकर विवाद बढ़ जाता है. इससे अन्य समस्याएं भी होती हैं. WorkManager में अब नए एपीआई उपलब्ध हैं. इनका इस्तेमाल करके,
एपीआई में हुए बदलाव
- WorkManager अब उन पूरे हो चुके
WorkRequests को ज़्यादा तेज़ी से हटाता है जिनकी कोई डिपेंडेंसी पूरी नहीं हुई है. बफ़र अवधि को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)
बाहरी योगदान
- ज़ैक स्वीर्स ने
ArrayCreatingInputMergerके लिए, समस्या ठीक करने से जुड़ा दस्तावेज़ बनाया (github/43).
वर्शन 2.4.0
वर्शन 2.4.0
22 जुलाई, 2020
androidx.work:work-*:2.4.0 रिलीज़ हो गया है. वर्शन 2.4.0 में ये बदलाव शामिल हैं.
2.3.0 के बाद के मुख्य बदलाव
WorkManagerमें प्रोसेस असाइन करने की सुविधा अब ज़्यादा बेहतर हो गई है. पहले, प्रोसेस में मौजूदSchedulerसिर्फ़ ऐसे काम को पूरा करने के बारे में सोचता था जिसमें देरी नहीं हुई है और जो कंस्ट्रेंट के मुताबिक है. अब, प्रोसेस में मौजूद शेड्यूलर,WorkRequestको ट्रैक करता है. इन्हें आने वाले समय में लागू किया जा सकता है. इनमें PeriodicWorkRequests भी शामिल हैं. प्रोसेस में मौजूदSchedulerभी शेड्यूल करने की सीमाओं का पालन नहीं करता है. हालांकि, यह अब भी WorkManager के ज़रिए इस्तेमाल किए जा रहेExecutorके साइज़ तक सीमित है. इसका मतलब है कि ऐप्लिकेशन अब ज़्यादा WorkRequest को पूरा कर सकता है, जब ऐप्लिकेशन फ़ोरग्राउंड में हो. फ़ोरग्राउंड में देर से शुरू होने वाले टास्क को मैनेज करने के लिए,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 घंटों में पूरे किए गए WorkRequests.
- फ़िलहाल, RUNNING स्थिति में मौजूद WorkRequest.
- शेड्यूल की गई WorkRequests. (aosp/1235501)
ExistingWorkPolicy.APPEND_OR_REPLACEजोड़ें. यहAPPENDजैसा ही होता है, लेकिन यह ऐसी चेन को बदलता है जो रद्द हो गई है या ज़रूरी शर्तें पूरी नहीं करती है. (b/134613984, aosp/1199640)कस्टम
RunnableSchedulerजोड़ने की सुविधा उपलब्ध कराएं, ताकि आने वाले समय में पूरे किए जाने वाले WorkRequest को ट्रैक किया जा सके. इसका इस्तेमाल, प्रोसेस में मौजूद शेड्यूलर करता है. (aosp/1203944)DelegatingWorkerFactoryका इस्तेमाल करते समय, डेलिगेट करने के लिए फ़ैक्ट्रियां डाइनैमिक तौर पर जोड़ने की सुविधा जोड़ी गई. (b/156289105, aosp/1309745)BATTERY_NOT_LOWकी पाबंदियों के लिए ट्रैकिंग को प्लैटफ़ॉर्म के साथ ज़्यादा सटीक तरीके से अलाइन किया गया है. (aosp/1312583)प्रोसेस में मौजूद शेड्यूलर अब प्रोसेस का नाम तय करने के लिए, बेहतर एपीआई का इस्तेमाल करता है. यह सुविधा, एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन को बेहतर तरीके से सपोर्ट करने के लिए फ़ायदेमंद है. (aosp/1324732)
लिंट के नए नियम, जो इन बातों को लागू करते हैं:
setForegroundAsync()एपीआई का इस्तेमाल करते समय, सहीforegroundServiceTypeका इस्तेमाल करना. (b/147873061, aosp/1215915)- JobScheduler आईडी तय करना, ताकि WorkManager सीधे तौर पर JobService API का इस्तेमाल करते समय इनका इस्तेमाल कर सके. aosp/1223567
- एक नया लिंट नियम जोड़ा गया है. इससे यह पक्का किया जा सकेगा कि डिफ़ॉल्ट
WorkerFactoryका इस्तेमाल करते समय,ListenableWorkerलागू करने के तरीके अबpublicहैं. (aosp/1291262)
setForegroundAsync()को किए गए ऐसे कॉल जोListenableWorkerके पूरा होने से पहले पूरे नहीं होते हैं उन्हें अबListenableFutureपर दिखाए गएIllegalStateExceptionके ज़रिए सिग्नल दिया जाएगा. (aosp/1262743)उस गड़बड़ी को ठीक किया गया है जिसमें फ़ोरग्राउंड
Workerमें रुकावट आने के बाद,ForegroundServiceबंद नहीं होता है. (b/155579898, aosp/1302153)उस बग को ठीक किया गया है जिसमें
WorkManager, फ़ोरग्राउंड सेवा से जुड़ेWorkerके एक से ज़्यादा इंस्टेंस को एक्ज़ीक्यूट करने की कोशिश करता है (b/156310133, 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, फ़ोरग्राउंड सेवा से जुड़ेWorkerके एक से ज़्यादा इंस्टेंस को एक्ज़ीक्यूट करने की कोशिश करता है (b/156310133, aosp/1309853) 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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एक नया Lint नियम जोड़ा गया है. यह नियम तब चेतावनी देता है, जब
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के साइज़ तक सीमित है. इसका मतलब है कि अब ऐप्लिकेशन, फ़ोरग्राउंड में होने पर ज़्यादाWorkRequests को लागू कर सकता है. (aosp/1185778)adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"का इस्तेमाल करके, WorkManager से परफ़ॉर्मेंस से जुड़ी जानकारी का अनुरोध करने की सुविधा जोड़ी गई. इससे कई तरह की काम की जानकारी मिलती है. जैसे:- पिछले 24 घंटों में पूरे किए गए WorkRequests.
- फ़िलहाल, RUNNING स्थिति में मौजूद WorkRequest.
- शेड्यूल की गई WorkRequests. (aosp/1235501)
लिंट के नए नियम, जो इन बातों को लागू करते हैं:
setForegroundAsync()एपीआई का इस्तेमाल करते समय, सहीforegroundServiceTypeका इस्तेमाल करना. (b/147873061, aosp/1215915)- उन
JobSchedulerआईडी के बारे में बताना जिन्हेंJobServiceएपीआई का सीधे तौर पर इस्तेमाल करते समय इस्तेमाल किया जाना चाहिए.WorkManager(aosp/1223567)
एपीआई में हुए बदलाव
ExistingWorkPolicy.APPEND_OR_REPLACEजोड़ें. यहAPPENDजैसा ही होता है, लेकिन यह उन चेन को बदलता है जिन्होंने ज़रूरी शर्तें पूरी नहीं की हैं या जिन्हें रद्द कर दिया गया है. (b/134613984, aosp/1199640)WorkRequestको ट्रैक करने के लिए, कस्टमRunnableSchedulerजोड़ने की सुविधा उपलब्ध कराएं. इनWorkRequestको आने वाले समय में लागू किया जाना है. इसका इस्तेमाल, प्रोसेस में मौजूद शेड्यूलर करता है. (aosp/1203944)
गड़बड़ियां ठीक की गईं
RxWorkerमेंsetProgress()को डेप्रिकेट किया गया है, क्योंकि यह पहलेSingle<Void>दिखाता था, जो कि एक इंपॉसिबल टाइप है. एक नया एपीआईsetCompletableProgress()जोड़ा गया है, जोCompletableदिखाता है. साथ ही, नए Lint नियम जोड़े गए हैं, जो नए एपीआई पर माइग्रेट करने में मदद करते हैं. (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 में 100 जॉब की सीमा से ज़्यादा जॉब शेड्यूल कर देता था. हालांकि, ऐसा कभी-कभी होता था. (aosp/1226859, b/149092520)
- ConstraintControllers में रेस कंडीशन की समस्या को ठीक किया गया है. (aosp/1220100)
- ज़्यादा समय तक चलने वाले वर्कर के लिए, फ़ोरग्राउंड सेवा के लाइफ़साइकल को मैनेज करने की सुविधा को बेहतर बनाया गया है. (aosp/1226295)
- कर्मचारी के रद्द होने पर, लंबे समय से काम कर रहे कर्मचारियों के लिए सूचनाएं रद्द करने की सुविधा को बेहतर बनाया गया है. (aosp/1228346)
वर्शन 2.3.1
वर्शन 2.3.1
5 फ़रवरी, 2020
androidx.work:work-*:2.3.1 रिलीज़ हो गया है. वर्शन 2.3.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- इससे लंबे समय तक चलने वाले
Workerके लिए,Notificationके लाइफ़साइकल को बेहतर तरीके से मैनेज किया जा सकता है. येWorkerतब चलते हैं, जब फ़ोरग्राउंडServiceचालू होता है. (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की जानकारी देनी होगी. यह एक ऐसा बदलाव है जिससे आपकी मौजूदा सुविधा पर असर पड़ सकता है. इससे एक साथ कई लंबे समय तक चलने वालेWorkerचलाए जा सकते हैं.WorkManager, दिए गएNotificationके लाइफ़टाइम को भी बेहतर तरीके से मैनेज करता है. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)
गड़बड़ियां ठीक की गईं
- AlarmManager को लागू करने के दौरान आने वाली गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, अलार्म को सही तरीके से हटाया नहीं जा रहा था. (aosp/1156444)
- एक गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से,
WorkRequestकी खाली सूची होने पर, गलतWorkContinuationचेन बन जाती थी. (b/142835274, aosp/1157051)
डिपेंडेंसी में बदलाव
- WorkManager अब Room 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()एपीआई जोड़ा गया है. इससेWorkRequestको रद्द करना आसान हो जाता है. इसके लिए,AndroidManifest.xmlमें किसी अन्य कॉम्पोनेंट को रजिस्टर करने की ज़रूरत नहीं होती. इस एपीआई की मदद से,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)
गड़बड़ियां ठीक की गईं
- जब
WorkRequests को कतार में लगाने की संख्या, शेड्यूलिंग की सीमाओं के करीब पहुंच जाती है, तो 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()API की मदद से, प्रोग्रेस सेट कर सकते हैं. साथ ही,CoroutineWorkerमेंsuspend-ingsetProgressAPI और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 एक नया मेवन आर्टफ़ैक्ट है. यह GCMNetworkManager को शेड्यूलर के तौर पर इस्तेमाल करने की सुविधा देता है. यह सुविधा, Google Play services के एपीआई लेवल <= 22 के लिए उपलब्ध है. यह एक ज़रूरी डिपेंडेंसी है. इससे पुराने एपीआई वर्शन पर, बैकग्राउंड में ज़्यादा भरोसेमंद तरीके से प्रोसेस करने में मदद मिलती है. अगर आपका ऐप्लिकेशन Google Play services का इस्तेमाल करता है, तो GCMNetworkManager की सुविधा अपने-आप पाने के लिए, इस डिपेंडेंसी को अपनी gradle फ़ाइल में जोड़ें. अगर Play Services उपलब्ध नहीं है, तो WorkManager पुराने डिवाइसों पर AlarmManager का इस्तेमाल करता रहेगा.
वर्शन 2.2.0-rc01
30 जुलाई, 2019
androidx.work:work-*:2.2.0-rc01 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
- AlarmManager को लागू करने के दौरान हुई गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, सेवा समय से पहले बंद हो जाती थी. साथ ही, कुछ मामलों में
RejectedExecutionExceptionकी समस्या होती थी. (aosp/1092374) (b/138238197). - कुछ डिवाइसों पर
JobSchedulerएपीआई का इस्तेमाल करते समय,NullPointerExceptionकी समस्या को हल करने का तरीका जोड़ा गया. (aosp/1091020) (b/138364061), (b/138441699)
वर्शन 2.2.0-beta02
19 जुलाई, 2019
androidx.work:work-*:2.2.0-beta02 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
2.2.0-beta01में, अनजाने में जोड़ी गई jacoco डिपेंडेंसी को हटाया गया.
वर्शन 2.2.0-beta01
17 जुलाई, 2019
androidx.work:work-*:2.2.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
नई सुविधाएं
androidx.work:work-gcm:2.2.0-beta01एक नया मेवन आर्टफ़ैक्ट है. यह GCMNetworkManager को शेड्यूलर के तौर पर इस्तेमाल करने की सुविधा देता है. यह सुविधा, Google Play services के एपीआई लेवल <= 22 के लिए उपलब्ध है. यह ज़रूरी नहीं है. इससे पुराने एपीआई वर्शन पर, बैकग्राउंड में ज़्यादा भरोसेमंद तरीके से प्रोसेस करने में मदद मिलती है. अगर आपका ऐप्लिकेशन Google Play services का इस्तेमाल करता है, तो GCMNetworkManager की सुविधा अपने-आप पाने के लिए, इस डिपेंडेंसी को अपनी gradle फ़ाइल में जोड़ें. अगर Play Services उपलब्ध नहीं है, तो 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 मांग पर शुरू होने की सुविधा के लिए अपना प्रोजेक्ट सेट अप करने के लिए:
- अपने-आप शुरू होने वाली सुविधा बंद करें.
- अपने कस्टम
Applicationऑब्जेक्ट परConfiguration.Providerलागू करें. WorkManager.getInstance()के सभी रेफ़रंस कोWorkManager.getInstance(Context)में बदलें. इस बदलाव के तहत, हमनेWorkManager.getInstance()को बंद कर दिया है. अगर ऑन-डिमांड इनिशियलाइज़ेशन नहीं किया जा रहा है, तब भी नईWorkManager.getInstance(Context)को कॉल करना हमेशा ज़्यादा सुरक्षित होता है.
PeriodicWorkRequestअब शुरुआती देरी के साथ काम करते हैं. शुरुआती देरी सेट करने के लिए,PeriodicWorkRequest.BuilderपरsetInitialDelayतरीके का इस्तेमाल किया जा सकता है. b/111404867DelegatingWorkerFactoryका इस्तेमाल करके, एक या उससे ज़्यादा रजिस्टर किए गएWorkerFactoryको डेलिगेट करने की सुविधा जोड़ी गई. b/131435993- WorkManager,
Configuration.Builder.setTaskExecutorका इस्तेमाल करके अपने सभी इंटरनल बुक-कीपिंग के लिए,Executorको पसंद के मुताबिक बनाने की सुविधा जोड़ी गई है. work-testingआर्टफ़ैक्ट मेंTestWorkerBuilderऔरTestListenableWorkerBuilderका इस्तेमाल करके, यूनिट टेस्ट की जा सकने वालीWorkerऔरListenableWorkerक्लास बनाने की सुविधा जोड़ी गई.- ध्यान दें कि
work-testingअब Kotlin को डिपेंडेंसी के तौर पर इस्तेमाल करता है. साथ ही, इसमें डिफ़ॉल्ट रूप से कई Kotlin एक्सटेंशन शामिल होते हैं.
- ध्यान दें कि
WorkInfoमें रन अटेम्प्ट की संख्या जोड़ी गई. b/127290461Dataटाइप अब बाइट और बाइट ऐरे को सेव और वापस पा सकते हैं. इससे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 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
TestListenableWorkerBuilderअबListenableWorkerके इंस्टेंस बनाते समय, सही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को लागू करने में ओईएम से जुड़ी खास गड़बड़ियों को ठीक किया गया. - AlarmManager पर आधारित शेड्यूलर में सुधार किए गए हैं. इससे सेवा के लाइफ़टाइम से जुड़ी उन समस्याओं को ठीक किया गया है जिनकी वजह से पहले कभी-कभी क्रैश हो जाता था. (b/133313734)
वर्शन 2.1.0-alpha02
16 मई, 2019
WorkManager 2.1.0-alpha02 रिलीज़ हो गया है. इस वर्शन में कई नए एपीआई शामिल हैं.
एपीआई में हुए बदलाव
PeriodicWorkRequestअब शुरुआती देरी के साथ काम करते हैं. शुरुआती देरी सेट करने के लिए,PeriodicWorkRequest.BuilderपरsetInitialDelayतरीके का इस्तेमाल किया जा सकता है. b/111404867DelegatingWorkerFactoryका इस्तेमाल करके, एक या उससे ज़्यादा रजिस्टर किए गएWorkerFactoryको डेलिगेट करने की सुविधा जोड़ी गई. b/131435993WorkManager,
Configuration.Builder.setTaskExecutorका इस्तेमाल करके अपने सभी इंटरनल बुक-कीपिंग के लिए,Executorको पसंद के मुताबिक बनाने की सुविधा जोड़ी गई है.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 मांग पर शुरू होने की सुविधा के लिए अपना प्रोजेक्ट सेट अप करने के लिए:
- अपने-आप शुरू होने वाली सुविधा बंद करें.
- अपने कस्टम
Applicationऑब्जेक्ट परConfiguration.Providerलागू करें. WorkManager.getInstance()के सभी रेफ़रंस कोWorkManager.getInstance(Context)में बदलें. इस बदलाव के तहत, हमनेWorkManager.getInstance()को बंद कर दिया है. अगर ऑन-डिमांड इनिशियलाइज़ेशन नहीं किया जा रहा है, तब भी नईWorkManager.getInstance(Context)को कॉल करना हमेशा ज़्यादा सुरक्षित होता है.
work-testingआर्टफ़ैक्ट मेंTestWorkerBuilderऔरTestListenableWorkerBuilderका इस्तेमाल करके, यूनिट टेस्ट की जा सकने वालीWorkerऔरListenableWorkerक्लास बनाने की सुविधा जोड़ी गई.- ध्यान दें कि
work-testingअब Kotlin को डिपेंडेंसी के तौर पर इस्तेमाल करता है. हालांकि, इसमें डिफ़ॉल्ट रूप से कई Kotlin एक्सटेंशन भी शामिल होते हैं.
- ध्यान दें कि
WorkInfoमें रन अटेम्प्ट की संख्या जोड़ी गई. b/127290461Dataटाइप अब बाइट और बाइट ऐरे को सेव और वापस पा सकते हैं. इससे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
- जॉबशेड्यूलर से पहले के एपीआई पर, कंस्ट्रेंट ट्रैकिंग की सुविधा बंद न होने की वजह से होने वाली क्रैश की समस्या को ठीक किया गया है. b/129226383
- लंबे समय तक चलने वाले काम से जुड़ी
StackOverflowErrorसमस्या को ठीक किया गया. b/129091233 PeriodicWorkRequests के लिए अपडेट किया गया दस्तावेज़. इसमें बताया गया है कि एपीआई 23 पर फ़्लेक्स टाइम काम नहीं करता.- Kotlin के दस्तावेज़ में मौजूद कुछ ऐसे लिंक ठीक किए गए हैं जो काम नहीं कर रहे थे.
वर्शन 2.0.0
वर्शन 2.0.0
20 मार्च, 2019
WorkManager 2.0.0 रिलीज़ हो गया है. यह वर्शन, 2.0.0-rc01 जैसा ही है. साथ ही, यह AndroidX पर निर्भर रहने वाला 1.0.0 स्टेबल वर्शन है. हमारा सुझाव है कि आप लेगसी 1.x वर्शन के बजाय, इस वर्शन को टारगेट करें. अब सभी नए डेवलपमेंट, 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 से पहले की डिपेंडेंसी
रेफ़रंस दस्तावेज़: Java
Groovy
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.x लाइब्रेरी के लिए नए एपीआई भी रिलीज़ नहीं किए जाएंगे.
वर्शन 1.0.1-rc01
2 अप्रैल, 2019
WorkManager 1.0.1-rc01 रिलीज़ हो गया है. इस वर्शन में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- Robolectric टेस्ट अब WorkManager के साथ ठीक से काम करते हैं. b/122553577
- जॉबशेड्यूलर से पहले के एपीआई पर, कंस्ट्रेंट ट्रैकिंग की सुविधा बंद न होने की वजह से होने वाली क्रैश की समस्या को ठीक किया गया है. b/129226383
- लंबे समय तक चलने वाले काम से जुड़ी
StackOverflowErrorसमस्या को ठीक किया गया. b/129091233
वर्शन 1.0.0
वर्शन 1.0.0
05 मार्च, 2019
यह WorkManager का 1.0.0 स्टेबल रिलीज़ है. WorkManager का यह वर्शन, 1.0.0-rc02 वर्शन जैसा ही है.
वर्शन 1.0.0-rc02
21 फ़रवरी, 2019
यह WorkManager के 1.0.0 स्टेबल वर्शन के लिए, दूसरा रिलीज़ कैंडिडेट है. इस रिलीज़ में दो गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
Workers को अब ऐप्लिकेशन क्रैश होने के बाद सही तरीके से शेड्यूल किया जाता है. b/124546316Workers जो बिना जांच किए गएExceptionको थ्रो करते हैं उन्हें अबFAILEDके तौर पर सही तरीके से मार्क किया गया है. साथ ही, अब वे ऐप्लिकेशन की प्रोसेस को क्रैश नहीं करते हैं.
वर्शन 1.0.0-rc01
14 फ़रवरी, 2019
यह WorkManager के 1.0.0 स्टेबल वर्शन का रिलीज़ कैंडिडेट है. इस रिलीज़ में एक गड़बड़ी ठीक की गई है.
गड़बड़ियां ठीक की गईं
- AlarmManager पर आधारित लागू करने की सुविधा अब PeriodicWorkRequests के लिए,
flexविंडो का सही तरीके से पालन करती है. b/124274584
वर्शन 1.0.0-beta05
6 फ़रवरी, 2019
इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसमें एपीआई 23 पर
JobScheduler.getPendingJob(...)का इस्तेमाल किया गया था. b/123893059 - Android 5.1 (एपीआई लेवल 22) या इससे पहले के वर्शन पर चल रहे डिवाइसों पर,
NullPointerExceptionकी समस्या ठीक की गई. b/123835104
वर्शन 1.0.0-beta04
4 फ़रवरी, 2019
इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- AlarmManager के आधार पर लागू करने के लिए, PeriodicWork को शेड्यूल करने की सुविधा को बेहतर बनाया गया है.
- AlarmManager पर आधारित सुविधा का इस्तेमाल करते समय, WorkManager की पाबंदियों को सही तरीके से ट्रैक न कर पाने की समस्या को ठीक किया गया है. b/123379508
- AlarmManager पर आधारित सुविधा का इस्तेमाल करते समय, WorkManager के प्रोसेस बंद होने पर काम को फिर से शुरू न कर पाने की समस्या को ठीक किया गया है. b/123329850
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से, AlarmManager पर आधारित सुविधा का इस्तेमाल करते समय WorkManager, वेकलॉक लीक कर देता था.
वर्शन 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 (एपीआई लेवल 22) या इससे पहले के वर्शन पर चल रहे डिवाइसों पर
ConcurrentModificationExceptionठीक किया गया. 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में मौजूद बाकी सभी varargs तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा varargs कोArrays.asList(...)के साथ रैप किया जा सकता है. हम अब भी हर तरीके के सिंगल-आर्ग्युमेंट वर्शन शामिल करते हैं. यह एक ऐसा बदलाव है जिससे आपकी मौजूदा सुविधा पर असर पड़ सकता है. WorkContinuation.combine(OneTimeWorkRequest, *)वैरिएंट हटा दिए गए. वे एक ऐसा एपीआई पेश कर रहे थे जिसे समझना मुश्किल है. मौजूदाcombineतरीकों को समझना ज़्यादा आसान है. यह एक ऐसा बदलाव है जिससे आपकी मौजूदा सुविधा पर असर पड़ सकता है.
गड़बड़ियां ठीक की गईं
- मार्शमैलो से पहले के वर्शन में, पहले से चल रहे टास्क की प्रोसेस बंद होने पर, उसे फिर से शुरू करना अब ज़्यादा भरोसेमंद है.
LiveDataकोobserveForeverके ज़रिए ट्रैक किया जाता है. इसे WorkManager के ज़रिए ट्रैक किया जाता है. यह Room लाइब्रेरी में मौजूद समस्या को ठीक करने के लिए, बैकपोर्ट किया गया एक वर्शन है. b/74477406- अगर क्रम से लगाए गए ऑब्जेक्ट का साइज़, तय सीमा से ज़्यादा होता है, तो
Data.Builder.build()अब एक अपवाद दिखाता है. पहले, ऐसा सिर्फ़ बैकग्राउंड थ्रेड पर होता था, जहां इसे ठीक से मैनेज नहीं किया जा सकता था. - काम को रोकने और रद्द करने के बीच अंतर बताया गया है;
getWorkInfoById(),ListenableWorker.onStopped()के दौरानCANCELLEDStateके साथWorkInfoदिखाएगा. ListenableWorkerमें,nullResultको गड़बड़ियों के तौर पर मानें. b/120362353- API 24 पर चलने वाले Shield Tablet के लिए, अनुमान के आधार पर गड़बड़ी ठीक की गई है. इससे कभी-कभी
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में मौजूद बाकी सभी varargs तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा varargs को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()कर दिया गया है. यह एक ऐसा बदलाव है जिससे आपकी मौजूदा सुविधा पर असर पड़ सकता है.- एपीआई के इस्तेमाल को आसान बनाने के लिए, सार्वजनिक एपीआई में कई
@NonNullएनोटेशन जोड़े गए हैं. WorkContinuationबनाए बिना, यूनीकOneTimeWorkRequestको कतार में लगाने के लिए,WorkManager.enqueueUniqueWork()एपीआई जोड़ें.WorkManagerपरenqueueऔरcancelके सभी वैरिएंट, अब नयाOperationटाइप दिखाते हैं. यह एक ऐसा बदलाव है जिससे आपकी मौजूदा सुविधा पर असर पड़ सकता है.enqueueके सभी वैरिएंट, अबWorkRequestके लिए varargs स्वीकार नहीं करते. यह एक ऐसा बदलाव है जिससे आपकी मौजूदा सुविधा पर असर पड़ सकता है. इसके बजाय, कलेक्शन का इस्तेमाल करें. मौजूदा कोड में बदलाव करने के लिए,Arrays.asList()का इस्तेमाल किया जा सकता है. हमने ऐसा एपीआई के इस्तेमाल को कम करने और तरीकों की संख्या को कम करने के लिए किया है.- अब एक प्रोसेस में एक से ज़्यादा बार
initializeWorkManagerकरने पर,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के लिए varargs स्वीकार नहीं करते.- अब एक प्रोसेस में एक से ज़्यादा बार
initializeWorkManagerकरने पर,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का इस्तेमाल करके, डेटा को एक साथ ऐक्सेस किया जा सकता है और देखा जा सकता है. उदाहरण के लिए,WorkManager.enqueue()से पहलेvoidमिलता था. अब इससेListenableFuture<Void>मिलता है. ऑपरेशन पूरा होने के बाद, कोड चलाने के लिएListenableFuture.addListener(Runnable, Executor)याListenableFuture.get()को कॉल किया जा सकता है. - ध्यान दें कि इन
ListenableFutureसे यह पता नहीं चलता कि ऑपरेशन पूरा हुआ या नहीं. इनसे सिर्फ़ यह पता चलता है कि ऑपरेशन पूरा हो गया है. यह जानकारी पाने के लिए, आपको अब भी WorkManager के तरीकों को चेन करना होगा. - हम इन ऑब्जेक्ट पर
cancel()कॉल को अनदेखा करते हैं, क्योंकि ये भ्रमित करने वाले होते हैं और इनके बारे में तर्क देना मुश्किल होता है (क्या आपको ऑपरेशन या उसके नतीजे को रद्द करना है?). यहFutureके अनुबंध के तहत आता है. - सिंक्रोनस
getStatus*तरीकों के साथ समानता बनाए रखने के लिए, हमनेListenableFutureवैरिएंट उपलब्ध कराए हैं. साथ ही,LiveDataऑब्जेक्ट दिखाने वाले मौजूदा वैरिएंट के नाम बदल दिए हैं, ताकि नाम में साफ़ तौर पर "LiveData" शामिल हो (उदाहरण के लिए,getStatusesByIdLiveData(UUID)). यह एपीआई में किया गया एक बड़ा बदलाव है.
- अब
गड़बड़ियां ठीक की गईं
- डुप्लीकेट
androidx-annotations.proफ़ाइलों से जुड़ी, alpha09 वर्शन की समस्या को ठीक किया गया है. अपनी Gradle फ़ाइल सेexclude 'META-INF/proguard/androidx-annotations.pro'को मिटाकर, पिछली रिलीज़ के नोट से वर्कअराउंड हटाया जा सकता है. - proguard कॉन्फ़िगरेशन जोड़े गए, ताकि नए
Workerकंस्ट्रक्टर को बनाए रखा जा सके. b/116296569 - रेस कंडीशन में संभावित
NullPointerExceptionको ठीक किया गया है, जहां कामREPLACEd था. b/116253486 और b/116677275 WorkContinuation.combine()अब दो या उससे ज़्यादा के बजाय, एक या उससे ज़्यादाWorkContinuationस्वीकार करता है. b/117266752
एपीआई में हुए बड़े बदलाव
- पहले से मौजूद सभी
deprecatedतरीकों और क्लास को हटा दिया गया है. इनमें डिफ़ॉल्टWorkerकंस्ट्रक्टर भी शामिल है. - इंटरफ़ेस
WorkerFactoryऔर कॉन्क्रीट इंप्लीमेंटेशनDefaultWorkerFactoryकोWorkerFactoryनाम की ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है. WorkManager.synchronous()औरWorkContinuation.synchronous()को हटाया गया.WorkManager.getStatus*()तरीके अबListenableFutureदिखाते हैं.WorkManager.getStatus*LiveData()LiveDataको लौटाया गया है.
वर्शन 1.0.0-alpha09
19 सितंबर, 2018
आम समस्या
अगर आपको यह समस्या आ रही है: "ओएस से अलग पाथ 'META-INF/proguard/androidx-annotations.pro' वाली एक से ज़्यादा फ़ाइलें मिलीं", तो कृपया इस समस्या को हल करने के लिए, यहां दिया गया कोड अपनी gradle फ़ाइल में डालें. हम alpha10 में इस समस्या को ठीक कर रहे हैं:
Groovy
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
गड़बड़ियां ठीक की गईं
- "100 नौकरियां" वाली गड़बड़ी को ठीक करने के लिए, एक और सुधार किया गया. b/115560696
- रेस कंडीशन की वजह से, फ़ॉरेन की कंस्ट्रेंट से जुड़ी गड़बड़ियों को ठीक करने के लिए कुछ सुधार किए गए हैं. b/114705286
ConstraintTrackingWorker.onStopped(boolean),Workerको कॉल करने की अनुमति देता है. b/114125093- Firebase JobDispatcher के लिए, बैकऑफ़ में कम से कम देरी होने की सही शर्त लागू करें. b/113304626
- लाइब्रेरी के अंदर थ्रेडिंग को बेहतर बनाया गया है.
LiveDataके डुप्लीकेट कॉन्टेंट को हटाने से जुड़ी संभावित समस्या को ठीक किया गया है.
एपीआई में हुए बदलाव
- अब रनटाइम के दौरान,
Workerके अपने इंस्टेंस बनाए जा सकते हैं. इसके लिए,WorkManager.Configurationके हिस्से के तौर परWorkerFactoryतय करें. फ़ॉलबैक फ़ैक्ट्रीDefaultWorkerFactoryहै. यह WorkManager के पिछले वर्शन की तरह काम करती है.WorkerऔरNonBlockingWorkerके लिए डिफ़ॉल्ट कंस्ट्रक्टर को अब बंद कर दिया गया है. कृपया नए कंस्ट्रक्टर (Worker(Context, WorkerParameters)) का इस्तेमाल करें औरsuper(Context, WorkerParameters)को कॉल करें. WorkManager के आने वाले वर्शन में, डिफ़ॉल्ट कंस्ट्रक्टर को हटा दिया जाएगा.
- हमने नए
ListenableFutureआर्टफ़ैक्ट का इस्तेमाल शुरू कर दिया है. यह Guava पर निर्भर नहीं करता. हम आने वाले वर्शन में, एपीआई के लिए ListenableFutures को लॉन्च करेंगे. इस बदलाव से,NonBlockingWorkerको वापस दिखाने में मदद मिलेगी. TestDriver.setInitialDelayMet(UUID)औरTestDriver.setPeriodDelayMet(UUID)के ज़रिए,TestDriverमें तय समय पर काम शुरू करने की सुविधा जोड़ी गई. b/113360060
नुकसान पहुंचा सकने वाले बदलाव
- डिफ़ॉल्ट
WorkerऔरNonBlockingWorkerकंस्ट्रक्टर अब इस्तेमाल नहीं किए जा सकते. कृपया जल्द से जल्द नए कंस्ट्रक्टर पर माइग्रेट करें. आने वाले वर्शन में, डिफ़ॉल्ट कंस्ट्रक्टर को हटा दिया जाएगा.
वर्शन 1.0.0-alpha08
27 अगस्त, 2018
गड़बड़ियां ठीक की गईं
- WorkManager के कॉम्पोनेंट को सीधे तौर पर डायरेक्ट बूट की जानकारी न होने के तौर पर लेबल किया गया है, ताकि वे डायरेक्ट बूट के दौरान चालू न हों. आने वाले समय में, हम WorkManager का ऐसा वर्शन उपलब्ध कराएंगे जो डायरेक्ट बूट के बारे में जानकारी रखता हो. b/112665532
- उस समस्या को ठीक किया गया है जिसकी वजह से फिर से शुरू किया गया काम नहीं चल रहा था. b/112604021
- बार-बार काम न करने वाली समय-समय पर होने वाली प्रोसेस से जुड़ी समस्या ठीक की गई. यह समस्या ऊपर बताई गई समस्या से जुड़ी है. b/112859683
- ऐप्लिकेशन प्रोसेस पहले से चल रही होने पर, बैकऑफ़ नीतियों का पालन किया जाता है.
Dataमें अपवाद के मैसेज को ठीक किया गया है, ताकि यह पता चल सके कि सीमा 10 केबी है.Configuration.setMaxSchedulerLimit(int)की ज़्यादा से ज़्यादा वैल्यू को 50 से कम किया गया है, ताकिJobSchedulerप्रोसेसिंग पूरी होने में लगने वाले कुछ समय को ध्यान में रखा जा सके. b/112817355
वर्शन 1.0.0-alpha07
16 अगस्त, 2018
गड़बड़ियां ठीक की गईं
- नेगेटिव सीमा वाली संभावित एसक्यूएल क्वेरी को ठीक किया गया है. इससे, नतीजों की संख्या तय नहीं की जा सकती थी.
- अब पूरा हो चुका काम, अन्य शेड्यूलर में उस काम की सभी लंबित कॉपी को सही तरीके से रद्द कर देता है. इस वजह से,
JobSchedulerनौकरियों की सीमा पार हो गई. b/111569265 ConstraintTrackerमेंConcurrentModificationExceptionको ठीक किया गया. b/112272753Data.getBooleanArray(String)औरData.getIntArray(String)के रिटर्न टाइप एनोटेशन को@NonNullके बजाय@Nullableमें बदल दिया गया है. b/112275229
एपीआई में हुए बदलाव
Workerने अब एक नई क्लास,NonBlockingWorkerशुरू की है. इससे मौजूदा इस्तेमाल पर कोई असर नहीं पड़ता. आने वाले समय में,NonBlockingWorkerकस्टम थ्रेडिंग के समाधानों के लिए पूरी तरह से काम करने वाली इकाई बन जाएगी.Data.getBooleanArray(String)औरData.getIntArray(String)के रिटर्न टाइप एनोटेशन को@NonNullके बजाय@Nullableमें बदल दिया गया है. b/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/111408337RescheduleReceiverका इस्तेमाल सिर्फ़ तब चालू करें, जब ऐसेWorkRequestमौजूद हों जिनके लिए इसकी ज़रूरत हो. b/111765853
वर्शन 1.0.0-alpha05
24 जुलाई, 2018
एपीआई में हुए बदलाव
WorkManager.getInstance()को अब@Nullableके बजाय@NonNullके साथ एनोटेट किया गया है. इसके बजाय, अगर मैन्युअल तरीके से शुरू करने के दौरान सिंग्लेटन को सही तरीके से शुरू नहीं किया जाता है, तो यह तरीकाIllegalStateExceptionदिखाएगा. यह एपीआई में किया गया एक ऐसा बदलाव है जिसकी वजह से, एपीआई के साथ इंटिग्रेट किए गए मौजूदा ऐप्लिकेशन काम नहीं करेंगे.- एक नया एपीआई,
Configuration.Builder.setMinimumLoggingLevel(int)जोड़ा गया है. इससे WorkManager के लॉग लेवल को कंट्रोल किया जा सकता है. डिफ़ॉल्ट रूप से, WorkManagerLog.INFOऔर इससे ऊपर के लॉग करता है. Data.getString()के सिग्नेचर में बदलाव किया गया है, ताकि अब यह डिफ़ॉल्ट वैल्यू न ले (यह डिफ़ॉल्ट रूप सेnullहै). यह एपीआई में किया गया एक बड़ा बदलाव है.- सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी कुछ तरीकों को
@hideके तौर पर मार्क किया गया है. इसमेंConstraintsकंस्ट्रक्टर,Data.toByteArray(), औरData.fromByteArray(byte[])शामिल हैं. यह एपीआई में किया गया ऐसा बदलाव है जिससे मौजूदा सिस्टम पर असर पड़ सकता है.
गड़बड़ियां ठीक की गईं
- WorkManager, ऑटो-बैकअप के ज्ञात मामलों में अब काम नहीं करता. इस वजह से, ऐप्लिकेशन क्रैश हो सकता है. b/110564377
JobSchedulerका इस्तेमाल करते समय,PeriodicWorkRequestके दो बार शेड्यूल होने की समस्या ठीक की गई. b/110798652- डिवाइस के डॉज़ मोड में होने के बाद,
PeriodicWorkRequestके ठीक से काम न करने की समस्या को ठीक किया गया है. b/111469837 - Firebase JobDispatcher का इस्तेमाल करते समय, शुरुआती देरी से जुड़ी समस्या को ठीक किया गया है. b/111141023
- रेस की कुछ संभावित स्थितियों और समय से जुड़ी समस्याओं को ठीक किया गया है.
- अब उन
BroadcastReceiverको सही तरीके से हटा दिया गया है जिनकी अब ज़रूरत नहीं है. - ऐप्लिकेशन को ज़बरदस्ती बंद करने के बाद, उन्हें फिर से शुरू करने पर टास्क को फिर से शेड्यूल करने की परफ़ॉर्मेंस को ऑप्टिमाइज़ किया गया है.
- इसे दिए गए
WorkRequestको लाइन में लगाने से पहले या बाद में कॉल किया जा सकता है.TestScheduler.setAllConstraintsMet(UUID)b/111238024
नुकसान पहुंचा सकने वाले बदलाव
WorkManager.getInstance()को अब@Nullableके बजाय@NonNullके साथ एनोटेट किया गया है.Data.getString()के सिग्नेचर में बदलाव किया गया है, ताकि अब यह डिफ़ॉल्ट वैल्यू न ले (यह डिफ़ॉल्ट रूप सेnullहै).- सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी कुछ तरीकों को
@hideके तौर पर मार्क किया गया है. इसमेंConstraintsकंस्ट्रक्टर,Data.toByteArray(), औरData.fromByteArray(byte[])शामिल हैं.
वर्शन 1.0.0-alpha04
26 जून, 2018
गड़बड़ियां ठीक की गईं
AlarmManagerपर आधारित सुविधा को लागू करने पर, अबPeriodicWorkRequestको सही तरीके से फिर से शेड्यूल किया जाता है.- ज़बरदस्ती बंद करने या रीबूट करने के बाद, सभी वर्कर को फिर से शेड्यूल करते समय होने वाली संभावित एएनआर की समस्या को ठीक किया गया. 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- API 28 पर JobParameters#getNetwork() के लिए सहायता जोड़ी गई. यह
Worker.getNetwork()के ज़रिए दिखता है. Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)जोड़ा गया है, ताकि यह तय किया जा सके किJobSchedulerयाAlarmManagerको कितनी नौकरियां भेजी जा सकती हैं. इससेWorkManagerको आपके सभी उपलब्धJobSchedulerस्लॉट लेने से रोकने में मदद मिलती है.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)जोड़ा गया. इससेJobSchedulerके लिए सुरक्षितWorkManagerके इस्तेमाल के लिए,JobSchedulerआईडी की रेंज तय करने में मदद मिलती है. b/79996760Worker.getRunAttemptCount(), किसी दिए गएWorkerके लिए मौजूदा रन की संख्या दिखाता है. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)की मदद से, यूनीकPeriodicWorkRequestको कतार में लगाया जा सकता है. b/79600647WorkManager.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पैरामीटर है. इसे तबtrueपर सेट किया जाता है, जबWorkerको साफ़ तौर पर रद्द कर दिया गया हो.
वर्शन 1.0.0-alpha02
24 मई, 2018
गड़बड़ियां ठीक की गईं
State.isFinished()कोNullPointerExceptionठीक किया गया. b/79550068- उस समस्या को ठीक कर दिया गया है जिसकी वजह से
WorkerकोApplication.onCreate()पर फिर से शेड्यूल किया जा रहा था. b/79660657 - उस समस्या को ठीक कर दिया गया है जिसमें ओएस की अनुमति से ज़्यादा काम शेड्यूल किया जा सकता था. b/79497378
Workerसे जुड़े वेक लॉक को हटाने की प्रोसेस को बैकग्राउंड थ्रेड में ले जाया गया.AlarmManagerलागू करने की प्रोसेस अब तब तक पूरी नहीं होगी, जब तक सभी काम पूरे नहीं हो जाते.- सफ़ाई करने वाली एसक्यूएल क्वेरी से जुड़ी समस्या ठीक की गई है. इससे अंग्रेज़ी के अलावा अन्य भाषाओं में उपलब्ध स्थानीय सेटिंग पर असर पड़ा था. b/80065360
Dataमें,floatके लिए सहायता जोड़ी गई. b/79443878Data.Builder.putAll()अबBuilderका एक इंस्टेंस दिखाता है. b/79699162- दस्तावेज़ में ज़्यादा javadoc और सुधार किए गए हैं. b/79691663
एपीआई में हुए बदलाव
Workers को रोकने पर, वे प्रतिक्रिया दे सकते हैं.Worker.isStopped()का इस्तेमाल यह देखने के लिए किया जा सकता है किWorkerको रोक दिया गया है या नहीं.Worker.onStopped()का इस्तेमाल, डेटा को कम करने वाली कार्रवाइयां करने के लिए किया जा सकता है.Worker.getTags()API,Workerसे जुड़े टैग काSetदिखाता है.- ऐसे एपीआई के लिए
javax.time.Durationओवरलोड जोड़े गए हैं जो अवधि और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 है.