WorkManager
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 23 सितंबर, 2026 | 2.12.0 | - | - | - |
डिपेंडेंसी का एलान करना
WorkManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी:
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { def work_version = "2.12.0" // (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.12.0" // (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.12
वर्शन 2.12.0
23 सितंबर, 2026
androidx.work:work-*:2.12.0 रिलीज़ हो गया है. वर्शन 2.12.0 में ये बदलाव शामिल हैं.
2.11.0 के बाद हुए मुख्य बदलाव:
minSdkको एपीआई 23 से एपीआई 24 पर अपडेट कर दिया गया है- एक नया आर्टफ़ैक्ट,
androidx.work:work-analytics, जोड़ा गया है. यह आपके काम के इतिहास की जांच करने के लिए, एक्सपेरिमेंट के तौर पर Work Metrics API जोड़ता है.WorkMetricsInfoRepository, हर काम के इवेंट के टाइमस्टैंप, कर्मचारी की अवधि, कुल रनटाइम, और रन के प्रयासों के ब्रेकडाउन कोWorkMetricsInfoकरता है. कॉन्फ़िगर की जा सकने वाली क्वेरी के ज़रिए मेट्रिक पढ़ी जा सकती हैं. इसके अलावा, इन्हें पूरे किए गए काम केFlowके तौर पर भी देखा जा सकता है. इन एपीआई का इस्तेमाल करने के लिए,@ExperimentalWorkMetricsApiमें ऑप्ट-इन करना ज़रूरी है. - नए एक्सपेरिमेंटल इवेंट लिसनर एपीआई की मदद से,
WorkManagerके एक्ज़ीक्यूशन और शेड्यूलिंग को सीधे तौर पर मॉनिटर किया जा सकता है.Configuration.Builderअब वर्कर के एक्ज़ीक्यूशन इवेंट (शुरू, खत्म, बंद, और बिना हैंडल किए गए अपवाद) के लिए एक लिसनर और शेड्यूलिंग इवेंट (enqueue, unblock, update, cancellation, और ज़रूरी शर्तें पूरी न हो पाना) के लिए एक लिसनर स्वीकार करता है. ये ऐसे बिल्डिंग ब्लॉक हैं जिन परwork-analyticsखुद बना है.
वर्शन 2.12.0-rc01
12 अगस्त, 2026
androidx.work:work-*:2.12.0-rc01 रिलीज़ हो गया है. वर्शन 2.12.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
WorkConstraintsDaoTestक्लास और फ़ाइल के नाम में टाइपिंग की गड़बड़ी को ठीक किया गया. (I0868d)WorkManagerस्टार्टअप के दौरान,PackageManagerServiceमें लॉक कंटेंशन कम किया गया. इसके लिए,PackageManagerHelperमें कॉम्पोनेंट मेनिफ़ेस्ट की डिफ़ॉल्ट रूप से चालू होने की स्थितियों को क्वेरी किया गया और कैश मेमोरी में सेव किया गया. (Id84ba, b/528755807)- उस समस्या को ठीक किया गया है जिसमें वर्कर के चालू होने के दौरान
WorkManager.updateWorkको कॉल करने पर, एक्ज़ीक्यूशन लाइफ़साइकल इवेंट हुक और टेलीमेट्री ट्रैकिंग तुरंत पोस्ट-अपडेट जनरेशन पर स्विच हो जाती थी. (Ie80e8, b/511074795)
वर्शन 2.12.0-beta01
29 जुलाई, 2026
androidx.work:work-*:2.12.0-beta01 रिलीज़ हो गया है. वर्शन 2.12.0-beta01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- एक्ज़ीक्यूटर के अपवादों को पकड़ते समय मेमोरी लीक होने की समस्या ठीक की गई (I3404e, b/532588487)
RemoteListenableWorkerके लिए, रद्द करने की सुविधा को बेहतर बनाया गया है, ताकि सिस्टम की ओर से शुरू किए गए वर्कर, रिमोट कोरूटीन को सही तरीके से रद्द कर सकें और काम को फिर से शेड्यूल कर सकें. वहीं, खुद को रद्द करने वाले रिमोट वर्कर, काम को 'असफल' के तौर पर सही तरीके से मार्क कर सकें. ध्यान दें: फ़िलहाल, इस सुविधा को लाइब्रेरी-ग्रुप के लिए प्रतिबंधित फ़्लैगConfiguration.isRemoteCancellationPropagationFixEnabled(डिफ़ॉल्ट रूप से गलत) के पीछे रखा गया है. इससे एक्सपेरिमेंट के तौर पर पुष्टि की जा सकेगी. साथ ही, यह पक्का किया जा सकेगा कि फ़्लैग को हमेशा के लिए हटाने से पहले, भरोसेमंद मेट्रिक स्थिर बनी रहें. (I387f3, b/420724435)
वर्शन 2.12.0-alpha01
15 जुलाई, 2026
androidx.work:work-*:2.12.0-alpha01 रिलीज़ हो गया है. वर्शन 2.12.0-alpha01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- मीट्रिक की जानकारी को फ़िल्टर करने के लिए,
WorkMetricsQueryAPI जोड़ा गया (I132b4, b/522338412) WorkMetricsInfoमेंworkerDurationMillisऔरtotalRuntimeMillisको लागू करें, ताकि वर्कर के टास्क पूरे करने में लगने वाले समय और कुल रनटाइम को ट्रैक किया जा सके. (I57f65, b/507212208)WorkMetricsInfoRepositoryमेंretentionDuration(Duration, API 26+) औरretentionTime/retentionTimeUnit(API 23+) कंस्ट्रक्टर जोड़े गए हैं, ताकि पुरानी मेट्रिक को हटाया जा सके. डिफ़ॉल्ट रूप से, यह अवधि सात दिन होती है. (Ifdf2e, b/522338412)- पूरे हो चुके
WorkMetricsInfoके लिए, ऐड फ़्लो एपीआई जोड़ा गया (I11ec2, b/507212999) work-analyticsक्लास में एक्सपेरिमेंटल एनोटेशन जोड़ा गया (I1a055, b/528112001)androidx.benchmarkका स्कोरminSdkअब 24 है. (Ic2a85)WorkMetricsInfoमेंstopReasonCounts,explicitRetryCount, औरrunAttemptCountलागू करें. (I95498, b/507212225)- काम पूरा होने के इतिहास को ट्रैक करने के लिए,
WorkMetricsInfoएपीआई और डेटाबेस स्कीमा लागू करें. इसमें, एनक्यू, अनब्लॉक, पहली बार शुरू होने और खत्म होने के टाइमस्टैंप शामिल हैं. (I163e9, b/479123623, b/507212482) - मौजूदा प्रोसेस में, ओपर्च्यूनिस्टिक शेड्यूलिंग की सुविधा बंद करने के लिए एक्सपेरिमेंटल एपीआई जोड़ा गया (I1062d, b/513299442)
WorkManagerशेड्यूलिंग इवेंट (I14487, b/448485695) को सुनने के लिए, एक्सपेरिमेंटल एपीआई जोड़ा गयाWorkInfoमें वर्कर क्लास का नाम जोड़ें (I57da1, b/448485695)- एक्सपेरिमेंट के तौर पर उपलब्ध इवेंट लिसनर एपीआई (Icaa8e, b/448485695) में ज़्यादा विस्तृत एनोटेशन जोड़ा गया
- एक नया एपीआई जोड़ा गया है. इससे
Dataक्लास के इंस्टेंस से, नल वैल्यू वाली स्ट्रिंग ऐरे को वापस पाने की अनुमति मिलती है (I78bc3, b/383071402) work-analyticsआर्टफ़ैक्ट बनाएं (Idc7c2, b/465357612)- वर्कर के एक्ज़ीक्यूशन से जुड़ी इवेंट के लिए लिसनर सेट करने के लिए, एक्सपेरिमेंटल एपीआई जोड़ा गया (I06b38, b/448485695)
गड़बड़ियां ठीक की गईं
- डिफ़ॉल्ट WM कॉन्फ़िगरेशन (Ic2c42, b/506239869) के लिए, कस्टम थ्रेड पूल के बजाय
Dispatchers.Defaultका इस्तेमाल करें - खराब परफ़ॉर्म करने वाले वर्कर को मैनेज करने के लिए, टेस्ट को बेहतर बनाया गया और नए टेस्ट जोड़े गए (I500f3, b/506239869)
WorkManager'sएक्ज़ीक्यूशन लिसनर डिस्पैच में मौजूदConcurrentModificationExceptionको ठीक किया गया. (I4cc18, b/506239869)WorkManagerमें नेटवर्क की पाबंदी से जुड़ी कॉलबैक फ़ंक्शन रजिस्टर करते समय प्रोसेस क्रैश होने की समस्या ठीक की गई है. ऐसाACCESS_NETWORK_STATEअनुमतियां न होने की वजह से हो रहा था. (I7045a, b/446013734)- DEBUG लॉग चालू होने पर, लॉग की जानकारी को बेहतर बनाया गया (Id9e5f, b/491209738)
- इस बग को ठीक किया गया है. इसकी वजह से, ओएस के साथ फिर से शेड्यूल किए गए काम को शेड्यूल नहीं किया जा सका (I452fc, b/504085166, b/517339607)
Configuration.Providerरेफ़रंस दस्तावेज़ का लिंक ठीक किया गया (Ieedb7, b/340913210)- इवेंट हुक को कार्रवाइयों के लिए ब्लॉक नहीं किया गया (I27cd8, b/448485695)
WorkManagerअब सामान्यSQLiteExceptionपर शुरू होने की कोशिश करता है. (I98436, b/485368721)- डेवलपर को
WorkInfo.STOP_REASON_UNKNOWNसे मैप करके, स्टॉप होने की ऐसी वजह का कोड मिल रहा था जो मौजूद नहीं है. इस समस्या को ठीक कर दिया गया है. (I0b175, b/479314734) - नेटवर्क की ज़रूरी शर्तें पूरी होने के बावजूद, बैकग्राउंड में नेटवर्क कॉल फ़ेल होने से जुड़ी अन्य समस्याएं ठीक की गईं (Ic7f73, b/445324855)
NetworkStateTrackerमें सुरक्षा से जुड़ी गड़बड़ी ठीक करें. (I4b7ca, b/480123154)- यह पक्का किया गया है कि एक्ज़ीक्यूशन हुक को सटीक
WorkInfoस्नैपशॉट मिले (I25ebb, b/448485695) - उस समस्या को ठीक किया गया है जिसकी वजह से Android 15 पर, बैकग्राउंड नेटवर्क के अनुरोध पूरे नहीं हो पाते थे. (I60f24, I8a0a2, b/452081708) (I5abb7, b/465016918)
- उस समस्या को ठीक किया गया है जिसकी वजह से, बिना किसी रुकावट के चलने वाले
WorkRequestफिर से शेड्यूल नहीं होते थे. (Ia6b92, b/443879071)
वर्शन 2.11
वर्शन 2.11.2
25 मार्च, 2026
androidx.work:work-*:2.11.2 रिलीज़ हो गया है. वर्शन 2.11.2 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- नेटवर्क की ज़रूरी शर्तें पूरी होने के बावजूद, बैकग्राउंड में नेटवर्क कॉल फ़ेल होने से जुड़ी अन्य समस्याओं को ठीक किया गया है (Ic7f73, b/445324855)
NetworkStateTrackerमें सुरक्षा से जुड़ी गड़बड़ी ठीक करें. (I4b7ca, b/480123154)- उस समस्या को ठीक किया गया है जिसकी वजह से, बिना किसी रुकावट के चलने वाले
WorkRequestफिर से शेड्यूल नहीं होते थे. (Ia6b92, b/443879071)
वर्शन 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 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
stopRunningWorkWithReasonकोWorkManagerTestDriverमें जोड़ें. (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 को एपीआई 21 से एपीआई 23 पर अपडेट कर दिया गया है (Ibdfca, b/380448311, b/435705964, b/435705223)
- WorkManager के कॉन्फ़िगरेशन बिल्डर में, एपीआई
setRemoteSessionTimeoutMillisको जोड़ा गया है. इससे यह कॉन्फ़िगर किया जा सकेगा कि RemoteWorkManager सेशन, आखिरी बार इस्तेमाल किए जाने के बाद कितने समय तक चालू रहेगा. (Ib23c8) WorkRequest.Builderमें एक्सपेरिमेंटल एपीआई जोड़ें, ताकि सिस्टम की वजह से काम में रुकावट आने पर बैकऑफ़ लागू किया जा सके. (Ie2dc7, b/335513480)- कस्टम
WorkerFactoryलागू करने के लिए बनाए जा रहेTestListenableWorkerBuilderसे अलग वर्कर क्लास में पास करने के लिए, टेस्ट एपीआई जोड़ें (If6bff, b/389154854)
गड़बड़ियां ठीक की गईं
- ज़रूरत से ज़्यादा आईपीसी (Ie4027, b/427115602) को रोकने के लिए,
SharedNetworkCallbackमें नेटवर्क की क्षमताओं को कैश मेमोरी में सेव करें - नेटवर्क की पाबंदी के आकलन से जुड़ी समस्या को ठीक किया गया है. इस समस्या की वजह से, पहले वर्क आइटम के बाद के वर्क आइटम को मौजूदा नेटवर्क की सुविधाएं नहीं मिलती थीं. इसके बजाय, टाइम आउट होने के बाद
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को एक्ज़ीक्यूट किया जाता है.- डेवलपर,
Constraints.setRequiredNetworkRequestतरीके का इस्तेमाल करके, वर्कर के लिएNetworkRequestको एक सीमा के तौर पर तय कर सकते हैं. इससे इस बात पर ज़्यादा विस्तृत नियंत्रण मिलता है कि इस वर्कर को किस नेटवर्क पर चलाना चाहिए. 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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- डेवलपर,
Constraints.setRequiredNetworkRequestतरीके का इस्तेमाल करके, वर्कर के लिएNetworkRequestको एक सीमा के तौर पर तय कर सकते हैं. इससे यह तय किया जा सकता है कि वर्कर को किस नेटवर्क पर चलाना है.
एपीआई में हुए बदलाव
NetworkRequestको पाबंदी के तौर पर तय करने की सुविधा जोड़ी गई है. (Id98a1, b/280634452)
वर्शन 2.9
वर्शन 2.9.1
7 अगस्त, 2024
androidx.work:work-*:2.9.1 रिलीज़ हो गया है. वर्शन 2.9.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
WorkManagerकी वजह से होने वाले क्रैश को ठीक किया गया है.ऐसा तब होता है, जब लंबे समय तक चलने वाले वर्कर (यानी कि फ़ोरग्राउंड वर्कर) को फिर से शुरू करने की कोशिश की जाती है. ऐसा तब होता है, जब काम के फ़ोरग्राउंड टाइप में Android 14 के लिए ज़रूरी अनुमतियां होती हैं और उन्हें रद्द कर दिया जाता है. (b/333957914)
वर्शन 2.9.0
29 नवंबर, 2023
androidx.work:work-*:2.9.0 रिलीज़ हो गया है. वर्शन 2.9.0 में ये बदलाव शामिल हैं.
2.8.0 के बाद हुए अहम बदलाव
Flowकी मदद से जांचने की क्षमता. अबLiveDataके बजाय, वर्कर की प्रोग्रेस को फ़्लो के ज़रिएWorkManager.getWorkInfosFlowऔर इसी तरह के अन्य तरीकों से देखा जा सकता है.- अब
WorkManagerयह जानकारी देता है कि किसी वर्कर को पहले क्यों रोका गया था. इसे वर्कर सेgetStopReason()तरीके से याWorkInfoसेgetStopReason()तरीके से क्वेरी किया जा सकता है. setNextScheduleTimeOverrideकी मदद से, समय-समय पर काम करने वाले लोगों के लिए सटीक शेड्यूल बनाना. इससे, समय-समय पर होने वाले अगले टास्क की शेड्यूल का डाइनैमिक तरीके से हिसाब लगाया जा सकता है. इसका इस्तेमाल, अडैप्टिव रीफ़्रेश टाइम, कस्टम रीट्राय बिहेवियर जैसी ऐडवांस सुविधाओं को लागू करने के लिए किया जा सकता है. इसके अलावा, इसका इस्तेमाल हर सुबह उपयोगकर्ता के उठने से पहले, न्यूज़फ़ीड वर्कर को चलाने के लिए किया जा सकता है. इन तकनीकों के साथExistingPeriodicWorkPolicy.UPDATEका इस्तेमाल किया जाना चाहिए, ताकि अगले वर्कर को शेड्यूल करते समय, मौजूदा वर्कर को रद्द न किया जा सके.- WorkManager की टेस्टिंग, थ्रेडिंग मैचिंग प्रोडक्शन के साथ.
ExecutorsMode.PRESERVE_EXECUTORSका इस्तेमालinitializeTestWorkManagerमें किया जा सकता है, ताकिConfigurationमें सेट किए गए एक्ज़ीक्यूटर को सुरक्षित रखा जा सके और असली मुख्य थ्रेड का इस्तेमाल किया जा सके. CoroutineWorkerजैसे Coroutines API को, अतिरिक्त आर्टफ़ैक्ट work-runtime-ktx से मुख्य आर्टफ़ैक्ट work-runtime में ले जाया गया है. work-runtime-ktx अब खाली है.
एपीआई में हुए बदलाव
stopReasonकोWorkInfoमें जोड़ा गया है. यह वर्कर के चलने के बाद,stopReasonको उपलब्ध कराता है. यह रिपोर्टिंगstopReasonमें काम आ सकता है, क्योंकि वर्कर के बंद होने के बाद, ऐप्लिकेशन को बहुत तेज़ी से बंद किया जा सकता है. (I21386)- कॉन्फ़िगरेशन के ज़रिए
Clockको सेट करने की अनुमति दें. साथ ही, इसका इस्तेमाल वर्कर टेस्ट के एक्ज़ीक्यूशन के क्रम को तय करने के लिए किया जा सकता है. (Ic586e) ListenableWorkerमेंgetStopReason()तरीका जोड़ा गया है. इससे यह पता चलता है कि वर्कर को क्यों रोका गया था. (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)
ListenableWorkerमेंgetStopReason()तरीका जोड़ा गया है. इससे यह पता चलता है कि वर्कर को क्यों रोका गया था. (I07060)- लीक हुए संसाधनों के बारे में Closeguard की चेतावनी से बचने के लिए,
WorkManagerTestInitHelper#closeWorkDatabase()जोड़ा गया. (Ia8d49)
गड़बड़ियां ठीक की गईं
TestDriverका इस्तेमाल करके,overrideNextScheduleTimeको बायपास करने की सुविधा जोड़ी गई है. साथ ही, जांच से जुड़ी समस्याएं ठीक की गई हैं. (Ic2905)
वर्शन 2.9.0-alpha01
7 जून, 2023
androidx.work:work-*:2.9.0-alpha01 रिलीज़ हो गया है. वर्शन 2.9.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
Flowकी मदद से जांचने की क्षमता. अबLiveDataके बजाय, वर्कर की प्रोग्रेस को फ़्लो के ज़रिएWorkManager.getWorkInfosFlowऔर इसी तरह के अन्य तरीकों से देखा जा सकता है.setNextScheduleTimeOverrideकी मदद से, समय-समय पर काम करने वाले लोगों के लिए सटीक शेड्यूल बनाना. इससे, समय-समय पर होने वाले अगले टास्क की शेड्यूल का डाइनैमिक तरीके से हिसाब लगाया जा सकता है. इसका इस्तेमाल, अडैप्टिव रीफ़्रेश टाइम, कस्टम रीट्राय बिहेवियर जैसी ऐडवांस सुविधाओं को लागू करने के लिए किया जा सकता है. इसके अलावा, इसका इस्तेमाल हर सुबह उपयोगकर्ता के उठने से पहले, न्यूज़फ़ीड वर्कर को चलाने के लिए किया जा सकता है. इन तकनीकों के साथExistingPeriodicWorkPolicy.UPDATEका इस्तेमाल किया जाना चाहिए, ताकि अगले वर्कर को शेड्यूल करते समय, मौजूदा वर्कर को रद्द न किया जा सके.WorkManager, थ्रेडिंग मैचिंग प्रोडक्शन के साथ टेस्टिंग कर रहा है.ExecutorsMode.PRESERVE_EXECUTORSका इस्तेमाल,Configurationमें सेट किए गए एक्ज़ीक्यूटर को बनाए रखने और असली मुख्य थ्रेड का इस्तेमाल करने के लिए किया जा सकता है.- कोरूटीन एपीआई, जैसे कि
CoroutineWorkerको अतिरिक्त आर्टफ़ैक्टwork-runtime-ktxसे मुख्य आर्टफ़ैक्टwork-runtimeमें ट्रांसफ़र कर दिया गया है.work-runtime-ktxअब खाली है.
एपीआई में हुए बदलाव
WorkInfoका कंस्ट्रक्टर अब सार्वजनिक है. यह टेस्टिंग में काम आ सकता है. (Ia00b6, b/209145335)work-runtime-ktxअब खाली है.CoroutineWorkerऔर 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की तरह ही है, लेकिन यह कम दखल देने वाला है: अगर कोई वर्कर फ़िलहाल चल रहा है, तो यह उसे रद्द नहीं करता है. साथ ही, यह एनक्यू करने के समय को बनाए रखता है. शुरुआती देरी और अवधि का हिसाब, अपडेट करने के समय के बजाय, एनक्यू करने के मूल समय से लगाया जाता है.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के बजाय किया जा सकता है. ,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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
WorkInfoमेंequalsतरीके को ठीक किया गया है. पहले, यह नई जनरेशन की जानकारी को ध्यान में नहीं रखता था. (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के पिछले सिमैंटिक बनाए रखने हैं, तोREPLACEके जैसा ही नयाCANCEL_AND_REENQUEUEइस्तेमाल किया जा सकता है. (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)
getForegroundInfoकोWorkerमें जोड़ें. (Ic1ead)- आईडी से सीधे WorkQuery बनाने के लिए, हेल्पर तरीके
WorkQuery.fromIdsजोड़े गए. (Ie5bdf, b/199919736) - RxWorker में अब
setForegroundरिटर्निंगCompletableहै, जिसका इस्तेमालsetForegroundInfoAsyncके बजाय किया जा सकता है.ListenableFutureदिखाता है. (I85156) - RxJava 2 के लिए RxWorker में अब
getForegroundInfoहै, जोSingleदिखाता है. इसका इस्तेमालgetForegroundInfoAsyncके बजाय किया जा सकता है, जोListenableFutureदिखाता है. (I21c91, b/203851459) - RxJava 3 के लिए RxWorker में अब
getForegroundInfoहै, जोSingleदिखाता है. इसका इस्तेमालgetForegroundInfoAsyncके बजाय किया जा सकता है.getForegroundInfoAsync,ListenableFutureदिखाता है. (I1ca8a) - RxWorker में अब
setForegroundरिटर्निंगCompletableहै, जिसका इस्तेमालsetForegroundInfoAsyncके बजाय किया जा सकता है.ListenableFutureदिखाता है. (I992a3, b/203851459)
गड़बड़ियां ठीक की गईं
suspendCancellableCoroutineका इस्तेमाल करते समय,CoroutineScopeमें किए गए रद्द किए गए टिकट की जानकारी कोListenableFutureमें भी अपडेट करें. (I77e63)
वर्शन 2.7
वर्शन 2.7.1
17 नवंबर, 2021
androidx.work:work-*:2.7.1 रिलीज़ हो गया है. वर्शन 2.7.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
suspendCancellableCoroutineका इस्तेमाल करते समय,CoroutineScopeमें किए गए रद्द करने के अनुरोधों कोListenableFutureमें भी लागू किया जाता है. (I77e63)- जब देर से किए गए काम के अनुरोधों को प्राथमिकता के तौर पर मार्क किया जाता है, तो तुरंत एक अपवाद थ्रो किया जाता है. 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 में तेज़ी से पूरे होने वाले कामों को डेलिगेट करता है. साथ ही, 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 ने एक नया
WorkRequest.Builder.setExpedited(...)एपीआई लॉन्च किया है. इससे Android 12 में फ़ोरग्राउंड सेवा से जुड़ी पाबंदियों को ध्यान में रखा जा सकता है.ऐप्लिकेशन अब बैकग्राउंड में फ़ोरग्राउंड सेवा लॉन्च नहीं कर सकते. इसलिए, लंबे समय तक चलने वाले ऐसे काम को बेहतर तरीके से सपोर्ट करने के लिए ऐप्लिकेशन,
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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसमें
getWorkInfosLiveDataपर आधारित एपीआई का इस्तेमाल करते समय, इकाइयों को अपडेट करने के बादgetWorkInfosLiveDataको सही तरीके से अमान्य नहीं किया जा रहा था.WorkQuery(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की संख्या को अपने-आप कम कर देता है. अनुरोधों को अब भी फ़र्स्ट इन फ़र्स्ट आउट (पहले आओ, पहले पाओ) के क्रम में पूरा किया जाता है. (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 घंटों में पूरे किए गए WorkRequest.
- फ़िलहाल, चल रहे WorkRequest.
- शेड्यूल किए गए WorkRequest. (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के साइज़ तक सीमित है. इसका मतलब है कि ऐप्लिकेशन अब फ़ोरग्राउंड में होने पर, ज़्यादाWorkRequestको लागू कर सकता है. (aosp/1185778)adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"का इस्तेमाल करके, WorkManager से परफ़ॉर्मेंस से जुड़ी जानकारी का अनुरोध करने की सुविधा जोड़ी गई. इससे कई तरह की काम की जानकारी मिलती है. जैसे:- पिछले 24 घंटों में पूरे किए गए WorkRequest.
- फ़िलहाल, चल रहे WorkRequest.
- शेड्यूल की गई WorkRequests. (aosp/1235501)
लिंट के नए नियम, जो इन बातों को लागू करते हैं:
setForegroundAsync()एपीआई का इस्तेमाल करते समय, सहीforegroundServiceTypeका इस्तेमाल करना. (b/147873061, aosp/1215915)JobSchedulerआईडी तय करना, जिनका इस्तेमालWorkManagerको सीधे तौर परJobServiceAPI का इस्तेमाल करते समय करना चाहिए. (aosp/1223567)
एपीआई में हुए बदलाव
ExistingWorkPolicy.APPEND_OR_REPLACEजोड़ें. यहAPPENDजैसा ही होता है, लेकिन यह उन चेन को बदलता है जिन्होंने ज़रूरी शर्तें पूरी नहीं की हैं या जिन्हें रद्द कर दिया गया है. (b/134613984, aosp/1199640)कस्टम
RunnableSchedulerजोड़ने की सुविधा उपलब्ध कराएं, ताकि उनWorkRequests को ट्रैक किया जा सके जिन्हें आने वाले समय में लागू करना है. इसका इस्तेमाल, प्रोसेस में मौजूद शेड्यूलर करता है. (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 मिनट की समयावधि खत्म होने के बाद, लंबे समय तक चलने वाले
Workers के कई इंस्टेंस चल रहे थे. (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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- फ़ोरग्राउंड
Serviceके चालू होने पर लंबे समय तक चलने वालेWorkerके लिए,Notificationके लाइफ़साइकल को बेहतर तरीके से मैनेज किया जा सकता है. (aosp/1218539, b/147249312) WorkManagerअबandroidx.sqlite:sqlite-framework:2.1.0के स्टेबल वर्शन पर निर्भर करता है. (aosp/1217729)- लिंट के नियम जोड़े गए हैं, ताकि यह पक्का किया जा सके कि
ForegroundInfoमेंforegroundServiceTypes का इस्तेमाल करते समय,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में अब आपकोnotificationIdकी वैल्यू देनी होगी, ताकिListenableWorker.setForegroundAsync()का इस्तेमाल किया जा सके. यह एक ऐसा बदलाव है जिससे मौजूदा सिस्टम पर असर पड़ेगा. इससे एक साथ कई लंबे समय तक चलने वाले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)
गड़बड़ियां ठीक की गईं
- जब कतार में लगे
WorkRequestकी संख्या, शेड्यूल करने की सीमाओं के करीब पहुंच जाती है, तो WorkManager काम को सही तरीके से शेड्यूल करता है. (aosp/1105766) - WorkManager,
ListenableWorker#onStopped()को सिर्फ़ तब कॉल करता है, जब काम पहले से पूरा न हो. (b/140055777) - WorkManager अब वर्कर के रुकने या फ़ाइनल स्थिति में पहुंचने पर, प्रोग्रेस की जानकारी हटा देता है. (aosp/1114572)
Dataको अबtoString()के तौर पर ज़्यादा बेहतर तरीके से दिखाया गया है. (b/140945323)Dataअबequals()का बेहतर तरीका है. यहArrayटाइप के लिए,deepEqualsको भी सपोर्ट करता है. (b/140922528)- WorkManager अब अपने इंटरनल डेटाबेस और प्राथमिकता वाली फ़ाइलों को, नो बैकअप डायरेक्ट्री में सेव करता है. (b/114808216)
वर्शन 2.3.0-alpha01
22 अगस्त, 2019
androidx.work:work-*:2.3.September 5, 20190-alpha01 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
नई सुविधाएं
ListenableWorkerअबsetProgressAsync()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) ListenableWorkerमेंListenableFutureरद्द करने और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 का इस्तेमाल करता है, तो अपनी gradle फ़ाइल में यह डिपेंडेंसी जोड़ें. इससे आपको GCMNetworkManager की सुविधा अपने-आप मिल जाएगी. अगर Play सेवाएं उपलब्ध नहीं हैं, तो 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 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
- अनजाने में जोड़ी गई jacoco डिपेंडेंसी को हटाया गया. यह डिपेंडेंसी
2.2.0-beta01में जोड़ी गई थी.
वर्शन 2.2.0-beta01
17 जुलाई, 2019
androidx.work:work-*:2.2.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
नई सुविधाएं
androidx.work:work-gcm:2.2.0-beta01एक नया मेवन आर्टफ़ैक्ट है. यह GCMNetworkManager को शेड्यूलर के तौर पर इस्तेमाल करने की सुविधा देता है. यह सुविधा तब काम करती है, जब Google Play services, एपीआई लेवल <= 22 के लिए उपलब्ध हो. यह ज़रूरी नहीं है. इससे पुराने एपीआई वर्शन पर, बैकग्राउंड में प्रोसेस होने वाले टास्क को ज़्यादा भरोसेमंद तरीके से और बेहतर परफ़ॉर्मेंस के साथ पूरा करने में मदद मिलती है. अगर आपका ऐप्लिकेशन Google Play services का इस्तेमाल करता है, तो अपनी gradle फ़ाइल में यह डिपेंडेंसी जोड़ें. इससे आपको GCMNetworkManager की सुविधा अपने-आप मिल जाएगी. अगर Play सेवाएं उपलब्ध नहीं हैं, तो WorkManager पुराने डिवाइसों पर AlarmManager का इस्तेमाल करता रहेगा.
गड़बड़ियां ठीक की गईं
- Nvidia Shield K1 टैबलेट पर नेटवर्क की स्थिति को ट्रैक करते समय,
IllegalArgumentExceptionकी समस्या ठीक की गई. (aosp/1010188)
वर्शन 2.1.0
वर्शन 2.1.0
11 जुलाई, 2019
androidx.work:work-*:2.1.0 रिलीज़ हो गया है. यह रिलीज़, androidx.work:work-*:2.1.0-rc01 के जैसी ही है.
2.0.1 के बाद हुए अहम बदलाव
work-runtime-ktxके लिए अब Java 8 की ज़रूरत होती है. अगर आपको कोई समस्या आती है, तो अपनेbuild.gradleमें यह जानकारी जोड़ें:kotlinOptions { jvmTarget = "1.8" }- WorkManager के लिए, मांग पर शुरू होने की सुविधा जोड़ी गई है. इससे WorkManager सिर्फ़ तब शुरू होगा, जब इसे रेफ़रंस किया जाएगा. b/127497100 मांग पर शुरू होने वाले प्रोजेक्ट को सेट अप करने के लिए:
- अपने-आप शुरू होने वाली सुविधा बंद करें.
- अपने कस्टम
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- प्रोसेस बंद होने की वजह से,
WorkRequests के लिए एक्ज़ीक्यूशन विंडो में बदलाव होने वाली गड़बड़ी को ठीक किया गया है. 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 रिलीज़ हो गया है. इस वर्शन में कुछ गड़बड़ियां ठीक की गई हैं. Legacy 1.x वर्शन के उपयोगकर्ताओं को, इनमें से कुछ बदलाव 1.0.1-rc01 में भी दिखेंगे.
गड़बड़ियां ठीक की गईं
- Robolectric टेस्ट अब WorkManager के साथ ठीक से काम करते हैं. b/122553577
- जॉबशेड्यूलर से पहले के एपीआई पर, कंस्ट्रेंट ट्रैकिंग की सुविधा बंद न होने की वजह से होने वाली क्रैश की समस्या को ठीक किया गया है. b/129226383
- काम की लंबी चेन से जुड़ी
StackOverflowErrorको ठीक किया गया. b/129091233 PeriodicWorkRequestके लिए दस्तावेज़ अपडेट किया गया है. इसमें बताया गया है कि एपीआई 23 पर फ़्लेक्स टाइम काम नहीं करता.- Kotlin के दस्तावेज़ में कुछ टूटे हुए लिंक ठीक किए गए हैं.
वर्शन 2.0.0
वर्शन 2.0.0
20 मार्च, 2019
WorkManager 2.0.0 रिलीज़ हो गया है. यह वर्शन, 2.0.0-rc01 जैसा ही है. साथ ही, यह AndroidX पर निर्भर रहने वाले 1.0.0 स्टेबल वर्शन का AndroidX वर्शन है. हमारा सुझाव है कि आप लेगसी 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 स्टेबल वर्शन के लिए, दूसरा रिलीज़ कैंडिडेट है. इस रिलीज़ में दो गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
ऐप्लिकेशन क्रैश होने के बाद, अब
Workerसही तरीके से शेड्यूल किए जाते हैं. 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()के ज़रिए हासिल किया जा सकता है. अब आपकेListenableFutures का नतीजा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()के ज़रिए हासिल किया जा सकता है. अब आपकीListenableFutures सेPayloadके बजायResultनतीजे मिलते हैं.Workerमें, आउटपुटDataके लिए getter और setter तरीके नहीं हैं.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 स्वीकार नहीं करते. यह एक ऐसा बदलाव है जिससे मौजूदा सिस्टम पर असर पड़ेगा. इसके बजाय, Collections का इस्तेमाल करें.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 coroutines (स्टेबल वर्शन रिलीज़ होने के बाद) और 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()रिटर्नLiveDatas.
वर्शन 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 jobs" गड़बड़ी को ठीक करने के लिए, एक और सुधार जोड़ा गया. 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 केबी है.JobSchedulerकी प्रोसेसिंग पूरी होने में कुछ समय लगने की वजह से,Configuration.setMaxSchedulerLimit(int)की ज़्यादा से ज़्यादा वैल्यू को 50 से कम कर दिया गया है. 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 के अलग-अलग एपीआई में, nullability annotation जोड़े गए. b/110344065
- Worker को एक्ज़ीक्यूट करने के दौरान होने वाले ऐसे अपवादों को लॉग करें जिन्हें पकड़ा नहीं गया है. b/109900862
- अगर आपको WorkManager के पुराने वर्शन पर रोल बैक करना है, तो डेटाबेस को मिटाकर माइग्रेट करने की अनुमति दी गई है. b/74633270
- डुप्लीकेट इंप्लिसिट टैग बनाते समय, माइग्रेशन क्रैश होने की समस्या को ठीक किया गया है. यह समस्या बहुत कम होती है. ऐसा सिर्फ़ तब होता है, जब आपने खुद ही एक ही तरह के इंप्लिसिट टैग फ़ॉर्मैट का इस्तेमाल किया हो.
वर्शन 1.0.0-alpha03
19 जून, 2018
गड़बड़ियां ठीक की गईं
AlarmManagerपर आधारित लागू करने की प्रोसेस में रेस कंडीशन को ठीक किया गया. b/80346526.डिवाइस को फिर से चालू करने के बाद,
JobSchedulerका इस्तेमाल करते समय डुप्लीकेट जॉब की समस्या ठीक की गई.कॉन्टेंट यूआरआई ट्रिगर करने वाली नौकरियां, अब रीबूट करने पर भी बनी रहती हैं. b/80234744
दस्तावेज़ से जुड़े अपडेट. b/109827628, b/109758949, b/80230748
WorkRequestको फिर से कतार में लगाते समय क्रैश होने की समस्या को ठीक किया गया है. b/109572353.work-runtime-ktxडिपेंडेंसी का इस्तेमाल करते समय, Kotlin कंपाइलर की चेतावनियों को ठीक किया गया.WorkManager अब
Roomके1.1.1-rc1वर्शन का इस्तेमाल करता है.
एपीआई में हुए बदलाव
WorkContinuation.getStatuses()के सिंक्रोनस वर्शनgetStatusesSync()को जोड़ा गया.Workerमें, उपयोगकर्ता की ओर से रद्द किए गए अनुरोध और ओएस की ओर से अस्थायी तौर पर रोके गए अनुरोध के बीच अंतर करने की सुविधा है. अगर किसी तरह के स्टॉप का अनुरोध किया गया है, तोWorker.isStopped(),trueदिखाता है.Worker.isCancelled(), काम के रद्द होने परtrueदिखाता है. b/79632247- एपीआई 28 पर JobParameters#getNetwork() के लिए सहायता जोड़ी गई. इसे
Worker.getNetwork()के ज़रिए दिखाया जाता है. Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)जोड़ा गया है, ताकि यह तय किया जा सके किJobSchedulerयाAlarmManagerको कितनी नौकरियां भेजी जा सकती हैं. इससेWorkManagerको आपके सभी उपलब्धJobSchedulerस्लॉट लेने से रोका जा सकता है.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)जोड़ा गया है. इससेWorkManagerके लिए सुरक्षितJobSchedulerजॉब आईडी की रेंज तय करने में मदद मिलती है. b/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
एपीआई में हुए बदलाव
Workerको बंद किए जाने पर प्रतिक्रिया मिल सकती है.Worker.isStopped()का इस्तेमाल यह देखने के लिए किया जा सकता है किWorkerको रोक दिया गया है या नहीं.Worker.onStopped()का इस्तेमाल, कम समय में डेटा को व्यवस्थित करने के लिए किया जा सकता है.Worker.getTags()API,Workerसे जुड़े टैग काSetदिखाता है.- ऐसे एपीआई के लिए
javax.time.Durationओवरलोड जोड़े गए हैं जो अवधि औरTimeUnitका कॉम्बिनेशन लेते हैं. इसकी सुरक्षा@RequiresApi(26)करता है. WorkManagerएक्सटेंशन कोandroidx.work.ktxपैकेज सेandroidx.workपैकेज में ट्रांसफ़र कर दिया गया है. पुराने एक्सटेंशन अब सेवा में नहीं हैं. इन्हें आने वाले वर्शन में हटा दिया जाएगा.Configuration.withExecutor()के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय,Configuration.setExecutor()का इस्तेमाल करें.
वर्शन 1.0.0-alpha01
8 मई, 2018
WorkManager, बैकग्राउंड में काम करने वाले ऐसे टास्क को शेड्यूल और एक्ज़ीक्यूट करने की प्रोसेस को आसान बनाता है जिनके पूरा होने की गारंटी होती है और जो डिवाइस की स्थिति के हिसाब से काम करते हैं. यह शुरुआती रिलीज़ 1.0.0-alpha01 है.