WorkManager
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
4 सितंबर, 2024 | 2.9.1 | - | - | 2.10.0-ऐल्फ़ा03 |
डिपेंडेंसी तय करना
WorkManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने मौजूदा खाते में Google की Maven रिपॉज़िटरी जोड़नी होगी प्रोजेक्ट:
उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको build.gradle
फ़ाइल में ज़रूरत है
आपका ऐप्लिकेशन या मॉड्यूल:
ग्रूवी
dependencies { def work_version = "2.9.1" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support implementation "androidx.work:work-multiprocess:$work_version" }
Kotlin
dependencies { val work_version = "2.9.1" // (Java only) implementation("androidx.work:work-runtime:$work_version") // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("androidx.work:work-rxjava2:$work_version") // optional - GCMNetworkManager support implementation("androidx.work:work-gcm:$work_version") // optional - Test helpers androidTestImplementation("androidx.work:work-testing:$work_version") // optional - Multiprocess support implementation("androidx.work:work-multiprocess:$work_version") }
Kotlin एक्सटेंशन का इस्तेमाल करने के बारे में जानकारी के लिए, ktx दस्तावेज़ देखें.
डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ें लेख पढ़ें.
सुझाव
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको नई समस्याओं का पता चलता है या आपको इस लाइब्रेरी को बेहतर बनाने के लिए आइडिया मिल सकते हैं. कृपया, इस मौजूदा समस्याएं इस लाइब्रेरी में जोड़ें. किसी मौजूदा समस्या के लिए अपना वोट दें. इसके लिए ये तरीके अपनाएं: स्टार बटन पर क्लिक करके ऐसा किया जा सकता है.
समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.
वर्शन 2.10
वर्शन 2.10.0-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()
पर कॉल न करने पर, 'कम सेवा' और 'डेटा सिंक' टाइप वाले फ़ोरग्राउंड वर्कर में होने वाली गड़बड़ी और ANR की गड़बड़ी को ठीक करें. यह समस्या, एपीआई 34 और 35 वाले सिर्फ़ उन डिवाइसों पर लागू होती है जिन पर फ़ोरग्राउंड सेवा के टाइप लागू किए गए थे. (ca06b2, b/364508145)- नए
WorkerParameters
एपीआई की मदद से, उस रिमोट प्रोसेस को स्विच किया जा सकता है जिससेWorker
,WorkerFactory
का इस्तेमाल करते समय जुड़ा होता है. (Ibdc8a, Ie8a90, I7373f)
गड़बड़ियां ठीक की गईं
- Android 14 की ज़रूरी अनुमतियां होने पर,
WorkManager
की वजह से हुए क्रैश को ठीक किया गया. यह क्रैश, लंबे समय से चल रहे किसी वर्कर (यानी फ़ोरग्राउंड वर्कर) को रीस्टार्ट करने की वजह से हुआ था. (b/333957914) - नए प्लैटफ़ॉर्म एपीआई के ऐक्सेस की मैन्युअल आउटलाइन हटाई गई. ऐसा इसलिए, क्योंकि AGP 7.3 या इसके बाद के वर्शन (जैसे कि R8 वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर और एजीपी 8.1 या उसके बाद के वर्शन (जैसे कि D8 वर्शन 8.1) के साथ, R8 का इस्तेमाल करने पर ऐसा अपने-आप होता है. जो क्लाइंट एजीपी का इस्तेमाल नहीं कर रहे हैं उन्हें D8 वर्शन 8.1 या इसके बाद के वर्शन में अपडेट करने की सलाह दी जाती है. ज़्यादा जानकारी के लिए यह लेख देखें. (Ia60e0, b/345472586)
वर्शन 2.10.0-alpha02
17 अप्रैल, 2024
androidx.work:work-*:2.10.0-alpha02
रिलीज़ हो गया है. वर्शन 2.10.0-alpha02 में ये कमियां शामिल हैं.
एपीआई में किए गए बदलाव
WorkManager
में कॉन्फ़िगर किए जा सकने वाले@RestrictTo
Tracer
के ज़रिए, ट्रेस स्पैन उत्सर्जन करने की सुविधा जोड़ी गई. (I17d7f, b/260214125)- जहां
CoroutineWorker
निष्पादित किया जाता है वहां डिस्पैचर के कंट्रोल के लिएConfiguration.workerCoroutineContext
को में जोड़ा गया था. इससेWorkManager
मेंDispatchers.Default
के इस्तेमाल को पूरी तरह से रोकने में मदद मिलती है. (Icd1b7) - कर्मचारियों के लिए, कस्टम अपवाद हैंडलर जोड़ें (Ib1b74, b/261190695)
OneTimeWorkRequest.Builder
औरPeriodicWorkRequest.Builder
को अबClass
के बजायKClass
का इस्तेमाल करके बनाया जा सकता है:val request = OneTimeWorkRequest.Builder(Worker::class).setConstraints(...).build()
(Ib55f6)WorkManager
क्लास को Kotlin पर माइग्रेट किया गया. अबLiveData
,ListenableFuture
याFlow
रिटर्न करने वाले तरीकों से, शून्य एट्रिब्यूट की सही जानकारी मिलती है. इसके लिए ग्राहकों के व्यवहार में परिवर्तन करना पड़ सकता है अगर उस कोड में शून्य होने के अनुमान गलत थे. (If6757)
वर्शन 2.10.0-alpha01
24 जनवरी, 2024
androidx.work:work-*:2.10.0-alpha01
रिलीज़ हो गया है. वर्शन 2.10.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
- डेवलपर
Constraints.setRequiredNetworkRequest
तरीके का इस्तेमाल करके,NetworkRequest
को कंस्ट्रेंट के तौर पर कंस्ट्रेंट के तौर पर तय कर सकते हैं. इससे, इस वर्कर को किस नेटवर्क पर चलाना है, इसके लिए बेहतर कंट्रोल मिलता है.
एपीआई में किए गए बदलाव
NetworkRequest
को कंस्ट्रेंट के तौर पर बताने की सुविधा जोड़ी जा रही है. (Id98a1, b/280634452)
वर्शन 2.9
वर्शन 2.9.1
7 अगस्त, 2024
androidx.work:work-*:2.9.1
रिलीज़ हो गया है. वर्शन 2.9.1 में ये शर्तें शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस क्रैश को ठीक किया गया है जो
WorkManager
में, लंबे समय तक चलने वाले वर्कर (यानी फ़ोरग्राउंड वर्कर) को रीस्टार्ट करने की वजह से हुआ था. ऐसा तब हुआ, जब फ़ोरग्राउंड टाइप के लिए Android 14 से जुड़ी ज़रूरी अनुमतियां को रद्द कर दिया गया था. (b/333957914)
वर्शन 2.9.0
29 नवंबर, 2023
androidx.work:work-*:2.9.0
रिलीज़ हो गया है. वर्शन 2.9.0 में ये कमियां शामिल हैं.
2.8.0 से अब तक हुए अहम बदलाव
Flow
-से॰ के ज़रिए निगरानी की सुविधा.LiveData
के बजाय, अब प्रोसेसर की प्रोग्रेस को फ़्लो केWorkManager.getWorkInfosFlow
और इससे मिलते-जुलते तरीकों से देखा जा सकता है.- अब
WorkManager
इस बात का संकेत देता है कि किसी वर्कर को पहले क्यों रोका गया था. इसके लिए,getStopReason()
तरीके का इस्तेमाल करके, कर्मचारी से याgetStopReason()
की मदद सेWorkInfo
से क्वेरी की जा सकती है. setNextScheduleTimeOverride
के ज़रिए समय-समय पर काम करने वाले लोगों को सटीक तरीके से शेड्यूल करें. इसकी मदद से, तय समय पर होने वाले अगले काम के शेड्यूल का डेटा डाइनैमिक तरीके से कैलकुलेट किया जा सकता है. इसका इस्तेमाल, ज़रूरत के हिसाब से रीफ़्रेश होने का समय, फिर से कोशिश करने के कस्टम तरीके या उपयोगकर्ता के हर सुबह जागने से पहले, बिना ड्रिफ़्ट किए न्यूज़फ़ीड वर्कर को चलाने जैसी बेहतर सुविधाओं को लागू करने के लिए किया जा सकता है.ExistingPeriodicWorkPolicy.UPDATE
का इस्तेमाल इन तकनीकों के साथ किया जाना चाहिए, ताकि किसी मौजूदा वर्कर को शेड्यूल करते समय, मौजूदा कर्मचारी को रद्द न किया जा सके.- थ्रेडिंग मैचिंग प्रोडक्शन के साथ WorkManager की टेस्टिंग.
Configuration
में सेट किए गए एक्ज़िक्यूटर को बनाए रखने और असली मुख्य थ्रेड का इस्तेमाल करने के लिए,ExecutorsMode.PRESERVE_EXECUTORS
का इस्तेमालinitializeTestWorkManager
में किया जा सकता है. CoroutineWorker
जैसे कोरूटीन एपीआई को अतिरिक्त आर्टफ़ैक्ट वर्क-रनटाइम-ktx से मुख्य आर्टफ़ैक्ट वर्क-रनटाइम में ले जाया गया है. Work-runtime-ktx अब खाली है.
एपीआई में किए गए बदलाव
stopReason
कोWorkInfo
में जोड़ा गया. यह वर्कर के चलने के बाद,stopReason
उपलब्ध कराता है. यहstopReason
की रिपोर्ट करने के लिए उपयोगी हो सकता है, क्योंकि एक बार जब किसी कर्मचारी को रोका जाता है, तो ऐप्लिकेशन अपने-आप तुरंत बंद हो सकता है. (I21386)- यह नीति
Clock
को कॉन्फ़िगरेशन की मदद से सेट करने की अनुमति देती है. साथ ही, इसका इस्तेमाल वर्कर टेस्ट के क्रम को लागू करने के लिए किया जाता है. (Ic586e) ListenableWorker
मेंgetStopReason()
तरीका जोड़ा गया, जो इस बात का संकेत देता है कि कर्मचारी को क्यों रोका गया था. (I07060)WorkManagerTestInitHelper#closeWorkDatabase()
को जोड़ा गया, ताकि लीक हुए संसाधनों के बारे में CloseGuard की चेतावनी से बचा जा सके. (Ia8d49)WorkInfo
का कंस्ट्रक्टर अब सार्वजनिक है, जिससे टेस्टिंग में मदद मिल सकती है. (Ia00b6, b/209145335)work-runtime-ktx
अब खाली है.CoroutineWorker
और Kotlin से जुड़ी अन्य सुविधाएं अब मुख्य वर्क-रनटाइम आर्टफ़ैक्ट में उपलब्ध हैं. (I71a9a)setNextScheduleTimeOverride
तरीका जोड़ा गया, जिससे समय-समय पर होने वाले काम के शेड्यूल (I3b4da) की सटीक सेटिंग की जा सकती है- शेड्यूल किए गए रन टाइम की जानकारी पाने के लिए,
getNextScheduleTimeMillis
कोWorkInfo
में जोड़ा गया. (I797e4) - शुरुआती देरी और फ़्रीक्वेंसी की जानकारी,
WorkInfo
में जोड़ी जाती है. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
(If122a) तरीके से फ़्लो के ज़रिए कर्मचारियों को ट्रैक करने का तरीका जोड़ा गयाConstraints
में वह@RequiresApi(...)
एनोटेशन जोड़ा गया जो पहले मौजूद नहीं था कंस्ट्रक्टर और प्रॉपर्टी शामिल हैं. अब इन्हेंConstraints.Builder
के सेटर पर संबंधित एनोटेशन के साथ अलाइन कर दिया गया है. ये एनोटेशन,WorkManager
के पुराने वर्शन में मौजूद थे. (I6d7d2)- कॉन्टेंट यूआरआई के लिए,
WorkManager
में अब एक अलग सीमा लागू की गई है. इसकी मदद से,JobScheduler
में कॉन्टेंट अपडेट की गारंटी दी जा सकती है. इससे, कॉन्टेंट अपडेट के लिए बार-बार लोड की ज़रूरत नहीं पड़ती. इस सीमा कोConfiguration.Builder.setContentUriTriggerWorkersLimit
के ज़रिए कॉन्फ़िगर किया जा सकता है. (Ic128f) WorkInfo
में कंस्ट्रेंट जोड़ दिए गए हैं. (I162c0)
वर्शन 2.9.0-rc01
18 अक्टूबर, 2023
androidx.work:work-*:2.9.0-rc01
रिलीज़ हो गया है. वर्शन 2.9.0-rc01 में ये कमिट हैं.
- पिछली बार बीटा वर्शन रिलीज़ होने के बाद से कोई बदलाव नहीं किया गया है
वर्शन 2.9.0-beta01
6 सितंबर, 2023
androidx.work:work-*:2.9.0-beta01
रिलीज़ हो गया है. वर्शन 2.9.0-beta01 में ये तय किए गए हिस्से शामिल हैं.
एपीआई में किए गए बदलाव
WorkInfo.stopReason
औरListenableWorker.stopReason
(I0cc00) के ज़रिए लौटाए गए स्टॉप की वजहों के लिए कॉन्सटेंट जोड़ा गया
वर्शन 2.9.0-alpha02
26 जुलाई, 2023
androidx.work:work-*:2.9.0-alpha02
रिलीज़ हो गया है. वर्शन 2.9.0-alpha02 में ये कमियां हैं.
नई सुविधाएं
- अब
WorkManager
इस बात का संकेत देता है कि किसी वर्कर को पहले क्यों रोका गया था. इसके लिए,getStopReason()
तरीके का इस्तेमाल करके, कर्मचारी से याgetStopReason()
की मदद सेWorkInfo
से क्वेरी की जा सकती है.
एपीआई में किए गए बदलाव
stopReason
कोWorkInfo
में जोड़ा गया. यह वर्कर के दौड़ने के बादstopReason
उपलब्ध कराता है. यहstopReason
को इस्तेमाल करने लायक तरीके से रिपोर्ट करने में मददगार हो सकता है, क्योंकि एक बार कर्मचारी को रोका जाता है, तो ऐप्लिकेशन अपने-आप तुरंत बंद हो सकता है. (I21386)- Clock को कॉन्फ़िगरेशन की मदद से सेट करने और वर्कर टेस्ट के क्रम को लागू करने के लिए इस्तेमाल करने की अनुमति दें. (Ic586e)
ListenableWorker
मेंgetStopReason()
तरीका जोड़ा गया, जो इस बात का संकेत देता है कि कर्मचारी को क्यों रोका गया था. (I07060)WorkManagerTestInitHelper#closeWorkDatabase()
को जोड़ा गया, ताकि लीक हुए संसाधनों के बारे में CloseGuard की चेतावनी से बचा जा सके. (Ia8d49)
गड़बड़ियां ठीक की गईं
TestDriver
का इस्तेमाल करके,overrideNextScheduleTime
को बायपास करने की सुविधा जोड़ी गई. साथ ही, जांच करने की क्षमता से जुड़ी समस्याओं को ठीक किया गया. (Ic2905)
वर्शन 2.9.0-alpha01
7 जून, 2023
androidx.work:work-*:2.9.0-alpha01
रिलीज़ हो गया है. वर्शन 2.9.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
Flow
-से॰ के ज़रिए निगरानी की सुविधा.LiveData
के बजाय, अब प्रोसेसर की प्रोग्रेस को फ़्लो केWorkManager.getWorkInfosFlow
और इससे मिलते-जुलते तरीकों से देखा जा सकता है.setNextScheduleTimeOverride
के ज़रिए समय-समय पर काम करने वाले लोगों को सटीक तरीके से शेड्यूल करें. इसकी मदद से, तय समय पर होने वाले अगले काम के शेड्यूल का डेटा डाइनैमिक तरीके से कैलकुलेट किया जा सकता है. इसका इस्तेमाल, ज़रूरत के हिसाब से रीफ़्रेश होने का समय, फिर से कोशिश करने के कस्टम तरीके या उपयोगकर्ता के हर सुबह जागने से पहले, बिना ड्रिफ़्ट किए न्यूज़फ़ीड वर्कर को चलाने जैसी बेहतर सुविधाओं को लागू करने के लिए किया जा सकता है.ExistingPeriodicWorkPolicy.UPDATE
का इस्तेमाल इन तकनीकों के साथ किया जाना चाहिए, ताकि किसी मौजूदा वर्कर को शेड्यूल करते समय, मौजूदा वर्कर को रद्द न किया जा सके.WorkManager
की टेस्टिंग, थ्रेडिंग मैचिंग प्रोडक्शन के साथ की जा रही है.ExecutorsMode.PRESERVE_EXECUTORS
का इस्तेमाल,Configuration
में सेट किए गए एक्ज़िक्यूटर को बनाए रखने और असली मुख्य थ्रेड का इस्तेमाल करने के लिए किया जा सकता है.CoroutineWorker
जैसे कोरूटीन एपीआई को अतिरिक्त आर्टफ़ैक्टwork-runtime-ktx
से मुख्य आर्टफ़ैक्टwork-runtime
में ले जाया गया है.work-runtime-ktx
अब खाली है.
एपीआई में किए गए बदलाव
WorkInfo
का कंस्ट्रक्टर अब सार्वजनिक है, जिससे टेस्टिंग में मदद मिल सकती है. (Ia00b6, b/209145335)work-runtime-ktx
अब खाली है.CoroutineWorker
और कोटलिन से जुड़ी अन्य सुविधाएं, अब मुख्यwork-runtime
आर्टफ़ैक्ट में उपलब्ध हैं. (I71a9a)setNextScheduleTimeOverride
तरीका जोड़ा गया, जिससे समय-समय पर होने वाले काम के शेड्यूल (I3b4da) की सटीक सेटिंग की जा सकती हैgetEarliestRunTimeMillis
का नाम बदलकरgetNextScheduleTimeMillis
किया गया. (I2bd7a)- शेड्यूल किए गए रनटाइम की अगली जानकारी
WorkInfo
में जोड़ दी जाती है. (I797e4) - शुरुआती देरी और फ़्रीक्वेंसी की जानकारी,
WorkInfo
में जोड़ी जाती है. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
(If122a) तरीके से फ़्लो के ज़रिए कर्मचारियों को ट्रैक करने का तरीका जोड़ा गया- Constraints में वह
@RequiresApi(...)
एनोटेशन जोड़ा गया जो पहले मौजूद नहीं था कंस्ट्रक्टर और प्रॉपर्टी शामिल हैं. अब इन्हेंConstraints.Builder
के सेटर पर संबंधित एनोटेशन के साथ अलाइन कर दिया गया है. ये एनोटेशन,WorkManager
के पुराने वर्शन में मौजूद थे. (I6d7d2) - कॉन्टेंट यूआरआई के लिए,
WorkManager
में अब एक अलग सीमा लागू की गई है. इसकी मदद से,JobScheduler
में कॉन्टेंट अपडेट की गारंटी दी जा सकती है. इससे, कॉन्टेंट अपडेट के लिए बार-बार लोड की ज़रूरत नहीं पड़ती.Configuration.Builder.setContentUriTriggerWorkersLimit
की मदद से, इस सीमा को कॉन्फ़िगर किया जा सकता है. (Ic128f) WorkInfo
में कंस्ट्रेंट जोड़ दिए गए हैं. (I162c0)
वर्शन 2.8
वर्शन 2.8.1
22 मार्च, 2023
androidx.work:work-*:2.8.1
रिलीज़ हो गया है. वर्शन 2.8.1 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
RescheduleReceiver
में ANR वाली उस गड़बड़ी को ठीक किया गया है जो पहले एक साथ दो ब्रॉडकास्ट को सही तरीके से हैंडल नहीं कर पाई थी. (b/236906724)
वर्शन 2.8.0
8 फ़रवरी, 2023
androidx.work:work-*:2.8.0
रिलीज़ हो गया है. वर्शन 2.8.0 में ये कमियां शामिल हैं.
2.7.0 के बाद से हुए अहम बदलाव
नई सुविधाएं
- बिना रुकावट वाले तरीके से
WorkRequests
को अपडेट करने की क्षमता जोड़ी गई, जिससे मूल सूची का समय, चेनिंग वगैरह सुरक्षित रहे. इस सुविधा के बारे में ब्यौरे वाला ब्लॉग पोस्ट और ज़्यादा जानकारी के लिएWorkManager.updateWork
औरExistingPeriodicWorkPolicy.UPDATE
के लिए JavaScript देखें.
एपीआई में किए गए बदलाव
- सूची में लगने वाले मूल समय और चेन को बनाए रखते हुए, काम को अपडेट करने के लिए
WorkManager.updateWork
को जोड़ा गया.(I9a248, b/219446409) ExistingPeriodicWorkPolicy.UPDATE
को जोड़ा गया. इस नीति के तहत, समय-समय पर किए जाने वाले किसी काम का नाम अपडेट किया जा सकता है. यह मौजूदाREPLACE
से मिलता-जुलता है, लेकिन इसमें ज़्यादा रुकावटें नहीं होती हैं: अगर कर्मचारी अभी चल रहा है, तो वह रद्द नहीं होता और इसके लिए कतार में लगने वाला समय सुरक्षित रहता है. शुरुआती देरी और अवधि को अपडेट करने के समय के बजाय, मूल कतार में लगाए जाने के समय से तय किया जाता है.REPLACE
औरUPDATE
के नाम के बीच भ्रम की स्थिति को कम करने के लिए,REPLACE
को बंद कर दिया गया था. अगर आपको अब भीREPLACE
के पिछले सिमैंटिक को बनाए रखना है, तो नए जोड़े गएCANCEL_AND_REENQUEUE
का इस्तेमाल किया जा सकता है, जोREPLACE
से मिलता-जुलता है. (I985ed, b/219446409)- setशेड्यूलिंग अपवादHandler की मदद से,
Consumer<Throwable>
देने वाले शेड्यूल के अपवादों को रोकने की सुविधा जोड़ी गई) - WorkManager को शुरू करने के दौरान कोई समस्या हुई या नहीं, यह पता लगाने के लिए setInitializationexceptHandler की मदद से
Consumer<Throwable>
देने की सुविधा जोड़ी गई. OneTimeWorkRequest
और के लिए इनलाइन हेल्परPeriodicWorkRequest
कोandroidx.work:work-runtime-ktx
सेandroidx.work:work-runtime
में ले जाया गया (I0010f, b/209145335)- सीधे
WorkQuery
बनाने के लिए, सहायक तरीकोंWorkQuery.fromIds
,WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
को जोड़ा गया. (b/199919736) (If48f2, b/199919736) getForegroundInfo
कोWorker
में जोड़ा गया. (Ic1ead)- RxJava 2 और RxJava 3, दोनों के लिए
RxWorker
में अबsetForeground
Completable
है. इसेsetForegroundInfoAsync
के बजाय,ListenableFuture
नतीजे के तौर पर इस्तेमाल किया जा सकता है - RxJava 2 और RxJava 3, दोनों के लिए
RxWorker
मेंgetForegroundInfo
सेSingle
मिला. इसका इस्तेमाल,ListenableFuture
देने वालेgetForegroundInfoAsync
के बजाय किया जा सकता है. (b/203851459) - अब
Constraints.Builder
का इस्तेमाल करने के बजाय, कंस्ट्रेंट को सीधे तौर पर बनाया जा सकता है. यह Kotlin के उपयोगकर्ताओं के लिए आसान है. (Idc390, b/137568653) - यह देखने की सुविधा जोड़ी गई कि
WorkManager
शुरू हुआ है या नहीं. साथ ही, लाइब्रेरी डेवलपर के लिए एक नयाgetConfiguration()
एपीआई जोड़ा गया, ताकि वह कॉन्फ़िगरेशन पा सके जिसके साथWorkManager
को शुरू किया गया था. (I6eff3, b/212300336)
गड़बड़ियां ठीक की गईं
- लालची शेड्यूलर की समस्या को ठीक किया गया, जो लोड होने पर कर्मियों को तुरंत काम करने से रोकती थी. (I9686b, b/248111307)
@RequiresPermission
को उन एपीआई में जोड़ा गया जिनके लिए SDK टूल 33 और इसके बाद के वर्शन पर,POST_NOTIFICATIONS
की अनुमति देना ज़रूरी है. (Ie542e, b/238790278)suspendCancellableCoroutine
का इस्तेमाल करते समय,CoroutineScope
में रद्द किए गए क्रेडिट कोListenableFuture
में लागू करें.
वर्शन 2.8.0-rc01
7 दिसंबर, 2022
androidx.work:work-*:2.8.0-rc01
रिलीज़ हो गया है. वर्शन 2.8.0-rc01 में ये कमिट शामिल हैं.
नई सुविधाएं
- इस रिलीज़ में कोई नई सुविधा नहीं है. मुख्य रूप से, यह एक वर्शन बंप है
वर्शन 2.8.0-beta02
9 नवंबर, 2022
androidx.work:work-*:2.8.0-beta02
रिलीज़ हो गया है. वर्शन 2.8.0-beta02 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
WorkInfo
मेंequals
तरीके को ठीक कर दिया गया है, जो पहले नई जनरेशन की जानकारी को शामिल नहीं करता था. (4977सीसी)
वर्शन 2.8.0-beta01
5 अक्टूबर, 2022
androidx.work:work-*:2.8.0-beta01
रिलीज़ हो गया है. वर्शन 2.8.0-beta01 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- लालची शेड्यूलर की समस्या को ठीक किया गया, जो लोड होने पर कर्मियों को तुरंत काम करने से रोकती थी. (I9686b, b/248111307)
वर्शन 2.8.0-alpha04
7 सितंबर, 2022
androidx.work:work-*:2.8.0-alpha04
रिलीज़ हो गया है. वर्शन 2.8.0-alpha04 में ये कमियां हैं.
एपीआई में किए गए बदलाव
WorkerInfo.getGeneration()
औरWorkerParameters.getGeneration()
जोड़े गए जो एक कर्मचारी की पीढ़ी को वापस लौटाते हैं. अगर किसी वर्कर कोWorkManager.updateWork
याExistingPeriodicWorkPolicy.UPDATE
का इस्तेमाल करकेWorkManager.enqueueUniquePeriodicWork
से अपडेट किया गया था, तो वर्कर की एक से ज़्यादा जनरेशन होती है. ध्यान दें कि यदि वर्कर वर्तमान में चल रहा है, तो यदि वर्कर के निष्पादन के दौरान कोई अपडेट हुआ हो, तो इस विधि के लिए वर्तमान में चल रहे वर्कर की नई जनरेशन वापस लौटना संभव है. (I665c5, b/219446409) (I128a9, b/219446409)InitializationExceptionHandler
को जोड़ा गया. यह एक अपवाद हैंडलर है जिसका इस्तेमाल यह पता लगाने के लिए किया जा सकता है किWorkManager
को शुरू करते समय कोई समस्या हुई या नहीं. (I061de)
वर्शन 2.8.0-alpha03
10 अगस्त, 2022
androidx.work:work-*:2.8.0-alpha03
रिलीज़ हो गया है. वर्शन 2.8.0-alpha03 में ये कमियां हैं.
नई सुविधाएं
WorkRequests
को बिना रुकावट वाले तरीके से अपडेट करने की सुविधा जोड़ी गई. इससे, सूची में शामिल होने का मूल समय सुरक्षित रहेगा और चेन बनाने जैसी सुविधाएं भी जोड़ी गईं. ज़्यादा जानकारी के लिए,WorkManager.updateWork
औरExistingPeriodicWorkPolicy.UPDATE
पर जाएं.
एपीआई में किए गए बदलाव
- सूची में लगने वाले मूल समय और चेन को बनाए रखते हुए, काम को अपडेट करने के लिए
WorkManager.updateWork
को जोड़ा गया.(I9a248, b/219446409) ExistingPeriodicWorkPolicy.UPDATE
को जोड़ा गया. यह नीति, समय-समय पर किए जाने वाले काम के नाम को अपडेट करने की अनुमति देती है. यह मौजूदाREPLACE
से मिलता-जुलता है, लेकिन इसमें ज़्यादा रुकावटें नहीं होती हैं: अगर कर्मचारी अभी चल रहा है, तो वह रद्द नहीं होता और इसके लिए कतार में लगने वाला समय सुरक्षित रहता है. शुरुआती देरी और अवधि को अपडेट करने के समय के बजाय, मूल कतार में लगाए जाने के समय से तय किया जाता है.REPLACE
औरUPDATE
के नाम के बीच भ्रम की स्थिति को कम करने के लिए,REPLACE
को बंद कर दिया गया था. अगर आपको अब भीREPLACE
के पिछले सिमैंटिक को बनाए रखना है, तो नए जोड़े गएCANCEL_AND_REENQUEUE
का इस्तेमाल किया जा सकता है, जोREPLACE
से मिलता-जुलता है. (I985ed, b/219446409)SchedulingExceptionHandler
तय करके, शेड्यूलिंग अपवादों को रोकने की सुविधा जोड़ें. (I033eb)OneTimeWorkRequest
और के लिए इनलाइन हेल्परPeriodicWorkRequest
कोandroidx.work:work-runtime-ktx
सेandroidx.work:work-runtime
में ले जाया गया (I0010f, b/209145335)
गड़बड़ियां ठीक की गईं
@RequiresPermission
को उन एपीआई में जोड़ा गया जिनके लिए SDK टूल के वर्शन 33 और इसके बाद के वर्शन पर, POST_NOTIFICATIONS की अनुमति देनी होगी. (Ie542e, b/238790278)
वर्शन 2.8.0-alpha02
6 अप्रैल, 2022
androidx.work:work-*:2.8.0-alpha02
रिलीज़ हो गया है. वर्शन 2.8.0-alpha02 में ये कमियां हैं.
एपीआई में किए गए बदलाव
- अब Builder का इस्तेमाल करने के बजाय, कंस्ट्रेंट को सीधे बनाया जा सकता है. यह Kotlin के उपयोगकर्ताओं के लिए आसान होती है. (Idc390, b/137568653)
- यह देखने की सुविधा जोड़ी गई कि
WorkManager
शुरू हुआ है या नहीं. साथ ही, लाइब्रेरी डेवलपर के लिए एक नयाgetConfiguration()
एपीआई जोड़ा गया, ताकि वह कॉन्फ़िगरेशन पा सके जिसके साथWorkManager
को शुरू किया गया था. (I6eff3, b/212300336)
वर्शन 2.8.0-alpha01
12 जनवरी, 2022
androidx.work:work-*:2.8.0-alpha01
रिलीज़ हो गया है. वर्शन 2.8.0-alpha01 में ये कमियां हैं.
एपीआई में किए गए बदलाव
- हेल्पर तरीके
WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
, सीधे WorkQuery बनाने के लिएWorkQuery.fromTags
जोड़े गए थे. (If48f2, b/199919736) - आने वाले समय में इस्तेमाल किए जाने वाले SDK टूल के लिए, BuildCompat के प्रयोग वाले तरीके जोड़े जाते हैं (Iafd82, b/207528937)
Worker
मेंgetForegroundInfo
जोड़ें. (Ic1ead)- सीधे आईडी से WorkQuery बनाने के लिए सहायक तरीके
WorkQuery.fromIds
जोड़े गए थे. (Ie5bdf, b/199919736) - अब RxWorker ने
setForeground
कोCompletable
लौटा दिया हैsetForegroundInfoAsync
की जगह पर इस्तेमाल किया जा सकता है, जोListenableFuture
. (I85156) - RxJava 2 के लिए RxWorker में अब
getForegroundInfo
है, जोSingle
दिखाएगाgetForegroundInfoAsync
की जगह पर इस्तेमाल किया जा सकता है, जोListenableFuture
. (I21c91, b/203851459) - RxJava 3 के लिए RxWorker में अब
getForegroundInfo
है, जोSingle
दिखाएगाgetForegroundInfoAsync
की जगह पर इस्तेमाल किया जा सकता है, जोListenableFuture
. (I1ca8a) - अब RxWorker ने
setForeground
कोCompletable
लौटा दिया हैsetForegroundInfoAsync
की जगह पर इस्तेमाल किया जा सकता है, जोListenableFuture
. (I992a3, b/203851459)
गड़बड़ियां ठीक की गईं
suspendCancellableCoroutine
का इस्तेमाल करते समय,CoroutineScope
में रद्द किए गए क्रेडिट कोListenableFuture
में लागू करें. (I77e63)
वर्शन 2.7
वर्शन 2.7.1
17 नवंबर, 2021
androidx.work:work-*:2.7.1
रिलीज़ हो गया है. वर्शन 2.7.1 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
suspendCancellableCoroutine
का इस्तेमाल करने पर,CoroutineScope
में रद्द की गई सदस्यताओं कोListenableFuture
में अपने-आप रद्द कर दिया जाता है. (I77e63)- जब देरी से काम करने के अनुरोधों को 'प्रोसेसिंग है' के तौर पर मार्क किया जाता है, तो एक अपवाद को तुरंत लागू कर दिया जाता है. बेफ़1762
वर्शन 2.7.0
13 अक्टूबर, 2021
androidx.work:work-*:2.7.0
रिलीज़ हो गया है. वर्शन 2.7.0 में ये कमियां शामिल हैं.
2.6.0 से अब तक हुए अहम बदलाव
WorkManager ने Android 12 में फ़ोरग्राउंड सेवा से जुड़ी पाबंदियों में मदद करने के लिए, नया
WorkRequest.Builder.setExpedited(...)
एपीआई लॉन्च किया है.setExpedited(...)
का इस्तेमाल करते समय, WorkManager Android 12 से JobScheduler में तेज़ी से किए जाने वाले जॉब का ऐक्सेस देता है. साथ ही, यह Android के पुराने वर्शन के साथ काम करने की सुविधा देता है. इसके लिए, यह फ़ोरग्राउंड सेवा को असाइन करता है.
वर्शन 2.7.0-rc01
29 सितंबर, 2021
androidx.work:work-*:2.7.0-rc01
रिलीज़ हो गया है. वर्शन 2.7.0-rc01 में ये कमिट हैं.
यह वर्शन, androidx.work:work-*:2.7.0-beta01
के जैसा है.
वर्शन 2.7.0-beta01
1 सितंबर, 2021
androidx.work:work-*:2.7.0-beta01
रिलीज़ हो गया है. वर्शन 2.7.0-beta01 में ये कमिट हैं.
नई सुविधाएं
- WorkManager को शुरू करते समय, मल्टी-प्रोसेस SQLite कंटिशन को कम करें.
एपीआई में किए गए बदलाव
@ExperimentalExpeditedWork
एपीआई को हटाएं, क्योंकि Android 12 (S) के लिए पहले से मौजूद प्लैटफ़ॉर्म एपीआई स्थिर हैं. (aosp/1792806)
गड़बड़ियां ठीक की गईं
- जल्द से जल्द काम करने वाले ऐसे कर्मचारियों के लिए गड़बड़ी का बेहतर मैसेज दें जो
getForegroundInfoAsync()
को लागू नहीं करते. (aosp/1809376)
वर्शन 2.7.0-alpha05
21 जुलाई, 2021
androidx.work:work-*:2.7.0-alpha05
रिलीज़ हो गया है. वर्शन 2.7.0-alpha05 में ये कमियां हैं.
इस रिलीज़ में WorkManager 2.6.0-beta02
रिलीज़ की गड़बड़ियां भी ठीक की गई हैं.
वर्शन 2.7.0-alpha04
2 जून, 2021
androidx.work:work-*:2.7.0-alpha04
रिलीज़ हो गया है.
इस रिलीज़ में 2.6.0-beta01 रिलीज़ के बदलाव भी शामिल हैं.
एपीआई में किए गए बदलाव
ListenableWorker.setForegroundAsync()
अब काम नहीं करता.- हमारा सुझाव है कि जब भी हो सके,
WorkRequest.Builder.setExpedited(...)
एपीआई का इस्तेमाल करें. अगर ऐप्लिकेशन पर फ़ोरग्राउंड सेवा से जुड़ी पाबंदियां लागू नहीं होती हैं, तो बेहतर सहायता के लिए डेवलपरListenableWorker.setForegroundAsync()
एपीआई का इस्तेमाल कर सकते हैं. - अगर
ListenableWorker.setForegroundAsync()
को कॉल किया जाता है, तो ऐप्लिकेशन पर फ़ोरग्राउंड सेवा से जुड़ी पाबंदियां लागू होने पर, ForegroundServiceStartNotAllowed तस्वीर दिखेगा.
गड़बड़ियां ठीक की गईं
- जब तेज़ प्रोसेस वाले कामों को फिर से शेड्यूल किया जाता है, तब वे जल्दी डिलीवर नहीं होते. वे सामान्य काम बन जाते हैं.
वर्शन 2.7.0-alpha03
21 अप्रैल, 2021
androidx.work:work-*:2.7.0-alpha03
रिलीज़ हो गया है. वर्शन 2.7.0-alpha03 में ये कमियां हैं.
नई सुविधाएं
WorkManager
2.6.0-alpha02
की ओर से: ऐसे कर्मचारियों के लिए सहायता जोड़ता है जो किसी भी प्रोसेस में काम कर सकते हैं. (Iaf200)WorkManager
2.6.0-alpha02
से: एकRemoteCoroutineWorker
जोड़ा गया है. यहRemoteListenableWorker
को लागू करने की प्रोसेस है, जो किसी रिमोट प्रोसेस से बाइंड कर सकता है. (I30578)
एपीआई में किए गए बदलाव
- WorkManager
2.6.0-alpha02
की ओर से:TEMPORARILY_UNMETERED
नेटवर्क कंस्ट्रेंट के लिए सहायता जोड़ी गई. (I08d5e) - WorkManager
2.6.0-alpha02
की ओर से:setProgressAsync()
के लिए, एक से ज़्यादा प्रोसेस करने वाले वर्कर से जुड़ी सहायता. (Ib6d08) - WorkManager
2.6.0-alpha02
से:WorkManagerInitializer
को सार्वजनिक करें, ताकि दूसरेandroidx.startup.Initializer
इनका इस्तेमाल डिपेंडेंसी के तौर पर कर सकें. (I5ab11)
वर्शन 2.7.0-alpha02
10 मार्च, 2021
androidx.work:work-*:2.7.0-alpha02
रिलीज़ हो गया है. वर्शन 2.7.0-alpha02 में ये कमियां हैं.
गड़बड़ियां ठीक की गईं
- Android 12 को टारगेट करते समय क्रैश की समस्या को ठीक करने के लिए,
PendingIntent
म्यूटेबिलिटी के बारे में साफ़ तौर पर जानकारी दें. (b/180884673)
वर्शन 2.7.0-alpha01
18 फ़रवरी, 2021
androidx.work:work-*:2.7.0-alpha01
रिलीज़ हो गया है. वर्शन 2.7.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
WorkManager ने Android 12 में फ़ोरग्राउंड सेवा से जुड़ी पाबंदियों को ध्यान में रखते हुए, एक नया
WorkRequest.Builder.setExpedited(...)
एपीआई लॉन्च किया है.ऐप्लिकेशन के बैकग्राउंड में होने पर, अब फ़ोरग्राउंड सेवा को लॉन्च नहीं किया जा सकता. इसलिए, लंबे समय तक चलने वाले ऐसे काम के लिए बेहतर सुविधाएं देने के लिए जो पहले फ़ोरग्राउंड सेवा के लाइफ़साइकल के हिसाब से थे, ऐप्लिकेशन
WorkRequest
s को expedited के तौर पर मार्क कर सकते हैं.यह एपीआई,
setForegroundAsync(...)
/setForeground(...)
एपीआई की जगह इस्तेमाल किया जा सकता है. इन एपीआई का अब इस्तेमाल नहीं किया जा सकता.setExpedited(...)
का इस्तेमाल करते समय, WorkManager Android 12 से,JobScheduler
में तेज़ी से काम करने वाले टास्क का ऐक्सेस देता है. साथ ही, यह Android के पिछले वर्शन पर पुराने सिस्टम के साथ काम करने की सुविधा देता है. ऐसा करने के लिए, यह ऐप्लिकेशन को फ़ोरग्राउंड सेवाओं का ऐक्सेस देना होता है.
एपीआई में किए गए बदलाव
- तेज़ स्पीड वाले
WorkRequest
के लिए सहायता जोड़ें.
वर्शन 2.6.0
वर्शन 2.6.0
1 सितंबर, 2021
androidx.work:work-*:2.6.0
रिलीज़ हो गया है. वर्शन 2.6.0 में ये कमियां शामिल हैं.
2.5.0 के बाद के अहम बदलाव
अब WorkManager, WorkManager को शुरू करने के लिए
androidx.startup
का इस्तेमाल करता है. अगर आपने पहले कभी WorkManager को शुरू करने के लिए,tools:node="remove"
ContentProvider
का इस्तेमाल किया था, तो आपको ये काम करने होंगे.<provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
<!-- If you want to disable android.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove" />
कर्मचारियों के लिए अतिरिक्त सहायता जो किसी भी प्रक्रिया में चल सकती है. (Iaf200)
एक
RemoteCoroutineWorker
जोड़ा गया, जो RemoteListenableWorker को लागू करता है. यह रिमोट प्रोसेस से बाइंड कर सकता है. (I30578)
वर्शन 2.6.0-rc01
4 अगस्त, 2021
androidx.work:work-*:2.6.0-rc01
रिलीज़ हो गया है. वर्शन 2.6.0-rc01 में ये कमिट हैं.
यह वर्शन, androidx.work:work-*:2.6.0-beta02
के जैसा है.
वर्शन 2.6.0-beta02
21 जुलाई, 2021
androidx.work:work-*:2.6.0-beta02
रिलीज़ हो गया है. वर्शन 2.6.0-beta02 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
RemoteWorkManager
अबRemoteWorkManagerService
से सही तरीके से अनबाइंड हो गया है. यहRemoteWorkManagerService
को सही तरीके से क्लीनअप करने में मदद करता है. एओएसपी/1730694RemoteListenableWorker
अबRemoteWorkerService
से सही तरीके से अनबाइंड हो गया है. यहRemoteWorkerService
को सही तरीके से क्लीनअप करने में मदद करता है. एओएसपी/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()
एपीआई जोड़ें, जो LookableWorker केoutputData
को दिखाता है. (Ie51e3)
गड़बड़ियां ठीक की गईं
- किसी OEM गड़बड़ी का कोई समाधान जोड़ें, जिसकी वजह से
AlarmManager
API का इस्तेमाल करते समयSecurityException
हो जाता है. (aosp/1587518)
वर्शन 2.5.0
वर्शन 2.5.0
27 जनवरी, 2021
androidx.work:work-*:2.5.0
रिलीज़ हो गया है. वर्शन 2.5.0 में ये कमियां शामिल हैं.
2.4.0 से हुए बड़े बदलाव
- ऐसे ऐप्लिकेशन के लिए एक नया
:work:work-multiprocess
आर्टफ़ैक्ट जो कई प्रोसेस का इस्तेमाल करता है. इसकी वजह से, काम के अनुरोध को शेड्यूल करने की प्रोसेस को एक ही प्रोसेस पर करने से परफ़ॉर्मेंस बेहतर होती है.work-multiprocess
का इस्तेमाल करने के लिए, इन पर डिपेंडेंसी तय करें:implementation "androidx.work:work-multiprocess:2.5.0"
- कॉन्फ़िगरेशन.Builder.setDefaultProcessName(String) का इस्तेमाल करके, मुख्य प्रोसेस तय करें.
work-multiprocess
का इस्तेमाल करते समय अपनेWorkRequest
को मैनेज करने के लिए, आपको RemoteWorkManager का भी इस्तेमाल किया जा सकता है. RemoteWorkManager हमेशा तय की गई प्रोसेस से संपर्क करता है. इन-प्रोसेस शेड्यूलर भी तय की गई प्रोसेस में चलता है.
- कभी-कभी,
ActivityManager
कोई काम शुरू करने के लिए,JobService
इंस्टेंस को इंस्टैंशिएट नहीं कर सकता. इस वजह से, प्लैटफ़ॉर्म में गड़बड़ी की वजह से जॉब छूट जाता है. अबWorkManager
यह पक्का करता है कि जॉब का मिलान करकेApplication
को शुरू करने पर, हरWorkRequest
के लिए बैकिंग जॉब मौजूद हों. इससे नौकरी के ज़्यादा मौके मिलते हैं. (b/172475041, aosp/1489577) WorkManager
,WorkRequest
के पूरा होने के बादWorkRequest
को ट्रैक किए जाने वाले बफ़र की अवधि को कम करके, डेटाबेस की बढ़ोतरी को सीमित करता है. इसकी अवधि पहले7
दिन थी. इस अवधि को घटाकर1
दिन और keepresultsForAtLeast की अवधि कर दी गई है. (aosp/1419708)TestListenableWorkerBuilder
अब जांच को आसान बनाने के लिए सुधारी गई क्लास के साथ काम करता है, जोListenableWorker
तक बढ़ाया जा सकता है. (aosp/1443299, b/169787349)- Android Studio Arctic Fox का इस्तेमाल करते समय, अब WorkManager इंस्पेक्टर की सुविधा उपलब्ध है.
वर्शन 2.5.0-rc01
13 जनवरी, 2021
androidx.work:work-*:2.5.0-rc01
रिलीज़ हो गया है. वर्शन 2.5.0-rc01 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
WorkQuery
पर आधारित एपीआई का इस्तेमाल करते समय, इकाइयों के अपडेट होने के बादgetWorkInfosLiveData
के अमान्य होने की गड़बड़ी को ठीक किया गया है. (aosp/1540566, b/173769028)- उस बग को ठीक किया गया है जहां कुछ दुर्लभ मामलों में डेटाबेस लेन-देन को सफल के रूप में मार्क नहीं किया जा रहा था. इससे कुछ Motorola डिवाइसों में समस्याएं आ रही हैं. (aosp/1535368, b/175944460)
- इस्तेमाल न होने वाली प्रोसेस से बाइंड होने की कोशिश करते समय,
NoSuchElementException
को अनदेखा करने के लिए, गड़बड़ी को ठीक किया गया. (aosp/1530589) - अगर
ListenableWorker
को पहले से नहीं रोका गया है, तो सिर्फ़ उसे रोकने के लिए,ConstraintTrackingWorker
को बेहतर बनाएं. (aosp/1496844, b/172946965) - Java 8 (Ibd2f2) को टारगेट करने के लिए, androidx.work लाइब्रेरी को अपडेट करें
वर्शन 2.5.0-beta02
2 दिसंबर, 2020
androidx.work:work-*:2.5.0-beta02
रिलीज़ हो गया है. वर्शन 2.5.0-beta02 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
androidx.work:work-multiprocess
में गड़बड़ी को ठीक किया गया है. इसकी वजह से, तय की गई प्रोसेस से बाइंड करने की कोशिश करते समय, WorkManager ने गलती से कॉलिंग थ्रेड ब्लॉक कर दी थी. (aosp/1475538)- गड़बड़ी को ठीक किया गया है, जहां
PeriodicWorkRequest
का समाधान सही तरीके से नहीं हो रहा था. (b/172475041, aosp/1489577) setForeground*
API का इस्तेमाल करते समय, फ़ोरग्राउंड सेवा को बंद करते समय, प्लैटफ़ॉर्म की गड़बड़ी के लिए समाधान जोड़ा गया. (b/170924044, aosp/1489901)
वर्शन 2.5.0-beta01
28 अक्टूबर, 2020
androidx.work:work-*:2.5.0-beta01
रिलीज़ हो गया है. वर्शन 2.5.0-beta01 में ये कमिट हैं.
नई सुविधाएं
WorkManager
उनWorkRequest
की संख्या को अपने-आप थ्रॉटल कर देता है जिन्हें प्रोसेस में मौजूद शेड्यूलर, पिक अप कर सकता है. अनुरोधों पर अब भी एफ़आईएफ़ओ के हिसाब से कार्रवाई की जाती है. (aosp/1455228)- ऐप्लिकेशन का डेटास्टोर खराब स्थिति में होने पर,
WorkManager
रिकवरी की कोशिश करता है. (aosp/1463103)
गड़बड़ियां ठीक की गईं
- जब
ListenableWorker
में रुकावट आती है, तो उन्हें तुरंतENQUEUED
के तौर पर मार्क करें, ताकि बाद में उन्हें फिर से शेड्यूल किया जा सके. (aosp/1455618, b/170273988)
वर्शन 2.5.0-alpha03
14 अक्टूबर, 2020
androidx.work:work-*:2.5.0-alpha03
रिलीज़ हो गया है. वर्शन 2.5.0-alpha03 में ये कमियां हैं.
एपीआई में किए गए बदलाव
TestListenableWorkerBuilder
औरTestWorkerBuilder
, रॉ टाइप का इस्तेमाल नहीं करते. (I883ad, b/169787349)
गड़बड़ियां ठीक की गईं
- ऐप्लिकेशन की डिफ़ॉल्ट प्रोसेस का नाम तय करने के लिए,
ApplicationInfo
का इस्तेमाल करें. (b/168716641, aosp/1429950) RemoteWorkManager
औरRemoteWorkContinuation
के लिए, 'किसको दिखे' सेटिंग से जुड़े नियम ठीक करें. इन एपीआई को अब@Restricted
के तौर पर मार्क नहीं किया गया है. (aosp/1432091):work:work-multiprocess
के लिए ProGuard के नियम ठीक करें. (aosp/1432091)- फ़ोरग्राउंड सेवा से जुड़े, लंबे समय तक चलने वाले काम के लिए, सूचनाओं की लाइफ़साइकल को बेहतर बनाएं. (b/168502234, aosp/1431331)
वर्शन 2.5.0-alpha02
16 सितंबर, 2020
androidx.work:work-*:2.5.0-alpha02
रिलीज़ हो गया है. वर्शन 2.5.0-alpha02 में ये कमियां हैं.
नई सुविधाएं
id
का इस्तेमाल करकेWorkInfo
से क्वेरी करने के लिए, WorkQuery में कोई एपीआई जोड़ें. (aosp/1412372, b/157335295)- WorkManager उन ऐप्लिकेशन के साथ बेहतर तरीके से काम करता है जो नए आर्टफ़ैक्ट (
androidx.work:work-multiprocess:*
) के साथ कई प्रोसेस का इस्तेमाल करते हैं. यह नया आर्टफ़ैक्ट कुछ समस्याओं को हल करने में मदद करता है, जो बड़े ऐप्लिकेशन के सामने आती हैं. इनमें ये समस्याएं शामिल हैं:- आम तौर पर, WorkManager को ऐप्लिकेशन के हर प्रोसेस में शुरू किया जाना चाहिए. यह ठीक नहीं है, क्योंकि SQLite पर विवाद बढ़ गया है. इसकी वजह से अन्य समस्याएं हो सकती हैं. WorkManager में अब नए एपीआई उपलब्ध कराए गए हैं. इनका इस्तेमाल
Configuration#setDefaultProcessName(processName)
का इस्तेमाल करके, ऐप्लिकेशन की मुख्य प्रोसेस तय करने के लिए किया जा सकता है.processName
, पूरी तरह क्वालिफ़ाइड प्रोसेस का नाम है, जोpackageName:processName
की तरह दिखता है (उदाहरण के लिए,com.example:remote
). - नए एपीआई का सेट:
RemoteWorkManager
औरRemoteWorkContinuation
सेenqueue
,cancel
, औरquery
काम के अनुरोध. एक से ज़्यादा प्रोसेस में SQLite के विवाद से बचने के लिए, इन एपीआई मेंLiveData
वैरिएंट शामिल नहीं हैं.enqueue
,cancel
, औरquery
पर किए जाने वाले सभी कॉल, एआईडीएल का इस्तेमाल करकेprimary
ऐप्लिकेशन प्रोसेस पर फ़ॉरवर्ड किए जाते हैं औरListenableFuture
बेहतर तरीके से दिए जाते हैं. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)
- आम तौर पर, WorkManager को ऐप्लिकेशन के हर प्रोसेस में शुरू किया जाना चाहिए. यह ठीक नहीं है, क्योंकि SQLite पर विवाद बढ़ गया है. इसकी वजह से अन्य समस्याएं हो सकती हैं. WorkManager में अब नए एपीआई उपलब्ध कराए गए हैं. इनका इस्तेमाल
एपीआई में किए गए बदलाव
- WorkManager अब पूरे हो चुके
WorkRequest
डिवाइसों की काट-छांट करता है. हालांकि, इसके लिए ज़रूरी है कि उन पर पूरी तरह से निर्भर नहीं हैं. बफ़र की अवधि को7
दिन से बदलकर1
दिन किया गया. (aosp/1419708)
गड़बड़ियां ठीक की गईं
- WorkManager अब जॉब का मिलान अपने-आप करता है, ताकि
WorkManager
को शुरू करने पर,WorkRequest
औरJobScheduler
जॉब सिंक में रहें. (aosp/1412794, b/166292069)
वर्शन 2.5.0-alpha01
19 अगस्त, 2020
androidx.work:work-*:2.5.0-alpha01
रिलीज़ हो गया है. वर्शन 2.5.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
- इंटरनल एपीआई में बदलाव. इनसे हम आने वाले समय में,
WorkManager
के साथ बेहतर टूल का इस्तेमाल कर पाएंगे. ज़्यादा अपडेट पाने के लिए हमारे साथ बने रहें.
गड़बड़ियां ठीक की गईं
- कुछ डिवाइसों पर नेटवर्क की स्थिति को ट्रैक करते समय,
SecurityException
हैंडल करता है. (aosp/1396969)
बाहरी योगदान
- Zac Sweers (github/43) के
ArrayCreatingInputMerger
के दस्तावेज़ ठीक करें.
वर्शन 2.4.0
वर्शन 2.4.0
22 जुलाई, 2020
androidx.work:work-*:2.4.0
रिलीज़ हो गया है. वर्शन 2.4.0 में ये कमियां शामिल हैं.
2.3.0 से अब तक के बड़े बदलाव
WorkManager
का इन-प्रोसेस शेड्यूलर अब पहले से बेहतर हो गया है. पहले, इन-प्रोसेसScheduler
में सिर्फ़ उस काम को लागू करने पर विचार किया जाता था जिसमें देरी नहीं होती और जिसकी शर्तें पूरी होती थीं. अब, इन-प्रोसेस शेड्यूलर,WorkRequest
को ट्रैक करता है, जिसे आने वाले समय में एक्ज़ीक्यूट किया जा सकता है. इसमें AftericWorkRequests शामिल हैं. प्रोसेस में चल रहीScheduler
, शेड्यूल करने की सीमाओं का पालन नहीं करती. हालांकि, यह अब भी WorkManager की ओर से इस्तेमाल किए जा रहेExecutor
के साइज़ तक सीमित है. इसका मतलब यह है कि जब ऐप्लिकेशन फ़ोरग्राउंड में होता है, तो वह ऐप्लिकेशन अब काफ़ी ज़्यादा WorkRequests एक्ज़ीक्यूट कर सकता है. फ़ोरग्राउंड में, देर से होने वाले काम को मैनेज करने के लिए,WorkManager
में नया कॉन्फ़िगर किया जा सकने वाला नयाRunnableScheduler
भी लॉन्च किया गया है. (aosp/1185778)- WorkManager अब RxJava 3 वर्शन के साथ काम करता है. RxJava 3 का इस्तेमाल करने के लिए, आपको यह डिपेंडेंसी शामिल करनी चाहिए:
implementation "androidx.work:work-rxjava3:2.4.0"
. (aosp/1277904) WorkQuery
का इस्तेमाल करके,WorkInfo
के लिए क्वेरी करने की सुविधा जोड़ी गई. यह तब काम आता है, जब डेवलपर एक से ज़्यादा एट्रिब्यूट को मिलाकरWorkInfo
के बारे में क्वेरी करना चाहते हैं. ज़्यादा जानकारी के लिएWorkQuery.Builder.fromStates(...)
,WorkQuery.Builder. fromTags(...)
याWorkQuery.Builder.fromUniqueWorkNames(...)
देखें. (aosp/1253230, b/143847546)इसका इस्तेमाल करके
WorkManager
से गड़बड़ी की जानकारी का अनुरोध करने की सुविधा जोड़ें:adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
इससे आपको कई ज़रूरी जानकारी मिलती है. जैसे:
- पिछले 24 घंटों में पूरे किए गए WorkRequest.
- ऐसे WorkRequest जो अभी चल रहे हैं.
- शेड्यूल किए गए WorkRequests. (aosp/1235501)
APPEND
से मिलता-जुलताExistingWorkPolicy.APPEND_OR_REPLACE
जोड़ें. हालांकि, यह उस चेन को बदल देता है जिसकी ज़रूरी शर्तें रद्द कर दी गई हैं या जो पूरी नहीं हो सकी. (b/134613984, aosp/1199640)WorkRequests को ट्रैक करने के लिए, पसंद के मुताबिक
RunnableScheduler
जोड़ने की सुविधा दें, जिन्हें आने वाले समय में एक्ज़ीक्यूट करना ज़रूरी है. इसका इस्तेमाल, प्रोसेस में चल रहा शेड्यूलर करता है. (aosp/1203944)DelegatingWorkerFactory
का इस्तेमाल करते समय, डेलिगेट के लिए डाइनैमिक तौर पर फ़ैक्ट्री जोड़ने के लिए सहायता जोड़ें. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
कंस्ट्रेंट के लिए ट्रैकिंग को प्लैटफ़ॉर्म के साथ ज़्यादा बारीकी से अलाइन करें. (aosp/1312583)इन-प्रोसेस शेड्यूलर, अब प्रोसेस का नाम तय करने के लिए बेहतर एपीआई का इस्तेमाल करता है. यह एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन के लिए बेहतर तरीके से काम करता है. (aosp/1324732)
लिंट के नए नियम:
setForegroundAsync()
एपीआई का इस्तेमाल करते समय सहीforegroundServiceType
का इस्तेमाल. (b/147873061, aosp/1215915)- JobScheduler आईडी तय करना, जिन्हें WorkManager को सीधे JobService API का इस्तेमाल करते समय इस्तेमाल करना चाहिए. एओएसपी/1223567
- एक नया लिंट नियम जोड़ा गया, जो यह पक्का करता है कि डिफ़ॉल्ट
WorkerFactory
का इस्तेमाल करने परListenableWorker
लागू करने की सुविधा अबpublic
हो गई है. (aosp/1291262)
setForegroundAsync()
पर किए जाने वाले ऐसे कॉल जोListenableWorker
के पूरा होने से पहले पूरे नहीं होते उन्हें अब वापस आने वालेListenableFuture
परIllegalStateException
के ज़रिए सिग्नल भेजा जाएगा. (aosp/1262743)फ़ोरग्राउंड
Worker
में आने वाली रुकावट के बाद भीForegroundService
को बंद न होने से जुड़ी गड़बड़ी को ठीक करें. (b/155579898, aosp/1302153)वह बग ठीक करें जहां
WorkManager
फ़ोरग्राउंड सेवा (b/156310133 से जुड़ेWorker
के एक से ज़्यादा इंस्टेंस को चलाने की कोशिश करता है, aosp/1309853)
वर्शन 2.4.0-rc01
24 जून, 2020
androidx.work:work-*:2.4.0-rc01
रिलीज़ हो गया है. वर्शन 2.4.0-rc01 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- इन-प्रोसेस शेड्यूलर, अब प्रोसेस का नाम तय करने के लिए बेहतर एपीआई का इस्तेमाल करता है. यह एक से ज़्यादा प्रोसेस का इस्तेमाल करने वाले ऐप्लिकेशन के लिए बेहतर तरीके से काम करता है. (aosp/1324732)
वर्शन 2.4.0-beta01
20 मई, 2020
androidx.work:work-gcm:2.4.0-beta01
, androidx.work:work-runtime:2.4.0-beta01
, androidx.work:work-runtime-ktx:2.4.0-beta01
, androidx.work:work-rxjava2:2.4.0-beta01
, और androidx.work:work-testing:2.4.0-beta01
रिलीज़ हुए हैं. वर्शन 2.4.0-beta01 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- फ़ोरग्राउंड
Worker
में आने वाली रुकावट के बाद भीForegroundService
को बंद न होने से जुड़ी गड़बड़ी को ठीक करें. (b/155579898, aosp/1302153) - उस गड़बड़ी को ठीक करें जहां
WorkManager
, फ़ोरग्राउंड सेवा (b/156310133, aosp/1309853) से जुड़ेWorker
के एक से ज़्यादा इंस्टेंस लागू करने की कोशिश करता है DelegatingWorkerFactory
का इस्तेमाल करते समय, डेलिगेट के लिए डाइनैमिक तौर पर फ़ैक्ट्री जोड़ने के लिए सहायता जोड़ें. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
कंस्ट्रेंट के लिए ट्रैकिंग को प्लैटफ़ॉर्म के साथ ज़्यादा बारीकी से अलाइन करें. (aosp/1312583)
वर्शन 2.4.0-alpha03
29 अप्रैल, 2020
androidx.work:work-*:2.4.0-alpha03
रिलीज़ हो गया है. वर्शन 2.4.0-alpha03 में ये कमियां हैं.
नई सुविधाएं
- WorkManager अब RxJava 3 वर्शन के साथ काम करता है. RxJava 3 का इस्तेमाल करने के लिए, आपको यह डिपेंडेंसी शामिल करनी चाहिए:
implementation "androidx.work:work-rxjava3:2.4.0-alpha03"
. (aosp/1277904) - एक नया लिंट नियम जोड़ा गया, जो यह पक्का करता है कि डिफ़ॉल्ट
WorkerFactory
का इस्तेमाल करने परListenableWorker
लागू करने की सुविधा अबpublic
हो गई है. (aosp/1291262)
एपीआई में किए गए बदलाव
ListenableWorker
के एक्ज़ीक्यूशन पूरा होने के बाद,setProgressAsync()
को कॉल करने पर,ListenableFuture
के ज़रिएException
को सिग्नल भेजा जाएगा. (aosp/1285494)WorkQuery.Builder
को अबfinal
के तौर पर मार्क कर दिया गया है. (aosp/1275037)WorkQuery.Builder
फ़ैक्ट्री तरीकोंwithStates
,withTags
, औरwithUniqueWorkNames
का नाम बदलकर,fromStates
,fromTags
, औरfromUniqueWorkNames
हो गया है. (aosp/1280287)
गड़बड़ियां ठीक की गईं
- किसी डिवाइस के नेटवर्क की स्थिति को ट्रैक करते समय,
SecurityException
को अनदेखा करें. (b/153246136, aosp/1280813)
वर्शन 2.4.0-alpha02
1 अप्रैल, 2020
androidx.work:work-*:2.4.0-alpha02
रिलीज़ हो गया है. वर्शन 2.4.0-alpha02 में ये कमियां हैं.
नई सुविधाएं
- एक नया लिंट नियम जोड़ा गया, जो
WorkRequest
के लिएConstraints.setRequiresCharging(...)
औरConstraints.setRequiresDeviceIdle(...)
, दोनों की ज़रूरत होने पर चेतावनी देता है. कुछ डिवाइस कभी भी चार्ज नहीं होते और एक ही समय पर इस्तेमाल में नहीं होते. इसलिए, ऐसे अनुरोध उम्मीद से कम बार चलेंगे. (aosp/1253840)
एपीआई में किए गए बदलाव
WorkQuery
का इस्तेमाल करके,WorkInfo
के लिए क्वेरी करने की सुविधा जोड़ी गई. यह तब काम आता है, जब डेवलपर एक से ज़्यादा एट्रिब्यूट को मिलाकरWorkInfo
के बारे में क्वेरी करना चाहते हैं. ज़्यादा जानकारी के लिएWorkQuery.Builder withStates(...)
,WorkQuery.Builder withTags(...)
याWorkQuery.Builder withUniqueWorkNames(...)
देखें. (aosp/1253230, b/143847546)setForegroundAsync()
पर किए जाने वाले ऐसे कॉल जोListenableWorker
के पूरा होने से पहले पूरे नहीं होते उन्हें अब वापस आने वालेListenableFuture
परIllegalStateException
के ज़रिए सिग्नल भेजा जाएगा. (aosp/1262743)
गड़बड़ियां ठीक की गईं
- लिंट नियम को ठीक किया गया, जो
PeriodicWorkRequest
के लिए अमान्य अंतराल की अवधियों की जांच करता है. (aosp/1254846, b/152606442)
वर्शन 2.4.0-alpha01
4 मार्च, 2020
androidx.work:work-*:2.4.0-alpha01
रिलीज़ हो गया है. वर्शन 2.4.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
WorkManager
का इन-प्रोसेस शेड्यूलर अब पहले से बेहतर हो गया है. पहले, इन-प्रोसेस शेड्यूलर सिर्फ़ उस काम को लागू करने पर विचार करता था जिसमें देरी नहीं होती थी और जिसकी शर्तें पूरी होती थीं. अब, इन-प्रोसेस शेड्यूलर,WorkRequest
को ट्रैक करता है, जिन्हें आने वाले समय में एक्ज़ीक्यूट किया जा सकता है. इसमेंPeriodicWorkRequest
भी शामिल हैं. प्रोसेस में है शेड्यूलर, शेड्यूलिंग की सीमाओं का पालन नहीं करता. हालांकि, यह अब भी WorkManager की ओर से इस्तेमाल किए जा रहेExecutor
के साइज़ तक सीमित है. इसका मतलब है कि अगर ऐप्लिकेशन फ़ोरग्राउंड में है, तो वह अब बहुत ज़्यादाWorkRequest
एक्ज़ीक्यूट कर सकता है. (aosp/1185778)adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
का इस्तेमाल करके, WorkManager से गड़बड़ी की जानकारी का अनुरोध करने की सुविधा जोड़ी गई. इससे आपको कई ज़रूरी जानकारी मिलती है. जैसे:- पिछले 24 घंटों में पूरे किए गए WorkRequest.
- ऐसे WorkRequest जो अभी चल रहे हैं.
- शेड्यूल किए गए WorkRequests. (aosp/1235501)
लिंट के नए नियम:
setForegroundAsync()
एपीआई का इस्तेमाल करते समय सहीforegroundServiceType
का इस्तेमाल. (b/147873061, aosp/1215915)JobScheduler
आईडी तय किए जा रहे हैं, जिनका इस्तेमालWorkManager
को सीधेJobService
एपीआई का इस्तेमाल करते समय करना चाहिए. (aosp/1223567)
एपीआई में किए गए बदलाव
APPEND
से मिलता-जुलताExistingWorkPolicy.APPEND_OR_REPLACE
जोड़ें. हालांकि, उस चेन को बदल दिया है जिसकी ज़रूरी शर्तें रद्द हो गई हैं या जो पूरी नहीं हो सकी. (b/134613984, aosp/1199640)आने वाले समय में लागू किए जाने वाले
WorkRequest
को ट्रैक करने के लिए, पसंद के मुताबिकRunnableScheduler
जोड़ने की सुविधा दें. इसका इस्तेमाल, प्रोसेस में चल रहा शेड्यूलर करता है. (aosp/1203944)
गड़बड़ियां ठीक की गईं
RxWorker
मेंsetProgress()
अब काम नहीं करता, क्योंकि इससे पहलेSingle<Void>
मिला था, जो नामुमकिन है. नया एपीआईsetCompletableProgress()
जोड़ा गया, जो इसके बजायCompletable
दिखाता है; साथ ही, हमने Lit के नए नियम जोड़े हैं. इनसे नए एपीआई पर माइग्रेट करने में मदद मिलती है. (b/150080946, aosp/1242665)
वर्शन 2.3.4
वर्शन 2.3.4
18 मार्च, 2020
androidx.work:work-*:2.3.4
रिलीज़ हो गया है. वर्शन 2.3.4 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जो 10 मिनट की एक्ज़ीक्यूशन विंडो को पार करने के बाद, लंबे समय तक चलने वाले
Worker
के कई इंस्टेंस की वजह से चलता था. (aosp/1247484, b/150553353) - WorkManager के लिंट
IssueRegistry
के लिए ठीक किया गया. योगदान देने के लिए, Slack की तरफ़ से @ZacSweers धन्यवाद. (aosp/1217923)
वर्शन 2.3.3
वर्शन 2.3.3
4 मार्च, 2020
androidx.work:work-*:2.3.3
रिलीज़ हो गया है. वर्शन 2.3.3 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- गड़बड़ी को ठीक किया गया है. इसकी वजह से,
Worker
में रुकावट आने पर, इसे सही तरीके से फिर से शेड्यूल नहीं किया जा सकता था. (b/150325687, aosp/1246571)
वर्शन 2.3.2
वर्शन 2.3.2
19 फ़रवरी, 2020
androidx.work:work-*:2.3.2
रिलीज़ हो गई हैं. वर्शन 2.3.2 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक करता है जहां WorkManager, JobScheduler में काम करने की तय सीमा को पार कर जाता है. ऐसा बहुत कम मामलों में होता है. (aosp/1226859, b/149092520)
- ConstraintControllers में रेस कंडिशन के लिए तय की गई समस्या को ठीक करना. (aosp/1220100)
- लंबे समय से काम कर रहे कर्मचारियों के लिए, मैनेजमेंट की फ़ोरग्राउंड सेवा की लाइफ़साइकल को बेहतर बनाया गया. (aosp/1226295)
- लंबे समय तक चलने वाली Workers on Worker की रद्द करने की प्रोसेस के लिए, सूचनाओं को रद्द करने की प्रोसेस को बेहतर बनाया गया. (aosp/1228346)
वर्शन 2.3.1
वर्शन 2.3.1
5 फ़रवरी, 2020
androidx.work:work-*:2.3.1
रिलीज़ हो गया है. वर्शन 2.3.1 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- फ़ोरग्राउंड
Service
के चालू होने पर, लंबे समय तक चलने वालेWorker
के लिए,Notification
की लाइफ़साइकल को बेहतर तरीके से मैनेज करें. (aosp/1218539, b/147249312) WorkManager
अबandroidx.sqlite:sqlite-framework:2.1.0
स्टेबल पर निर्भर है. (aosp/1217729)ForegroundInfo
मेंforegroundServiceType
का इस्तेमाल करते समय,AndroidManifest.xml
मेंforegroundServiceType
के बारे में बताया गया है, यह पक्का करने के लिए लिंट के नियम जोड़े गए. (aosp/1214207, b/147873061)
वर्शन 2.3.0
वर्शन 2.3.0
22 जनवरी, 2020
androidx.work:work-*:2.3.0
रिलीज़ हुई है. इसमें 2.3.0-rc01
से कोई बदलाव नहीं किया गया है. वर्शन 2.3.0 में ये कमियां शामिल हैं.
2.2.0 के बाद से हुए अहम बदलाव
ListenableWorker#setForegroundAsync()
के ज़रिए लंबे समय तक चलने वाले या ज़रूरी काम के लिए सहायता पाएं.ListenableWorker#setProgressAsync()
के ज़रिए वर्कर की प्रोग्रेस के लिए सहायता.- WorkManager अब लाइब्रेरी के हिस्से के तौर पर, लिंट के अतिरिक्त नियमों को पैकेज करता है, ताकि गड़बड़ियों को जल्दी पहचानने में मदद मिल सके.
वर्शन 2.3.0-rc01
8 जनवरी, 2020
androidx.work:work-*:2.3.0-rc01
रिलीज़ हो गया है. वर्शन 2.3.0-rc01 में ये कमियां शामिल हैं.
यह रिलीज़, 2.3.0-beta02
से मिलती-जुलती है
गड़बड़ियां ठीक की गईं
work-testing
आर्टफ़ैक्ट, अबwork-runtime-ktx
परapi
डिपेंडेंसी तय करता है. (aosp/1194410)
वर्शन 2.3.0-beta02
18 दिसंबर, 2019
androidx.work:work-*:2.3.0-beta02
रिलीज़ हो गया है. वर्शन 2.3.0-beta02 में ये तय किए गए हिस्से शामिल हैं.
नई सुविधाएं
- ठीक नहीं किए जा सकने वाले SQLite अपवादों के लिए, गड़बड़ी का बेहतर मैसेज जोड़ा गया. (aosp/1185777)
- एक लिंट नियम जोड़ा गया, जो यह पक्का करता है कि मांग पर शुरू करने की सुविधा का इस्तेमाल करते समय, कॉन्टेंट देने वाले
androidx.work.impl.WorkManagerInitializer
कोAndroidManifest.xml
से हटा दिया जाए. (aosp/1167007) enqueueUniquePeriodicWork()
के बजायPeriodicWorkRequest
के लिएenqueue()
का इस्तेमाल करने पर, लिंट की चेतावनी जोड़ी गई. (aosp/1166032)
एपीआई में किए गए बदलाव
ForegroundInfo
के लिए अब आपकोListenableWorker.setForegroundAsync()
का इस्तेमाल करते समय इस्तेमाल करने के लिएnotificationId
तय करना होगा. यह बदलाव नुकसान पहुंचा सकता है. इससे आपको एक साथ कई देर तक चलने वालेWorker
s चलाने में मदद मिलती है.WorkManager
दिए गएNotification
के लाइफ़टाइम को भी बेहतर ढंग से मैनेज करता है. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)
गड़बड़ियां ठीक की गईं
- AlarmManager लागू करने की उस गड़बड़ी को ठीक किया गया है जिसमें अलार्म को सही तरीके से साफ़ नहीं किया जा रहा था. (aosp/1156444)
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से
WorkRequest
की खाली सूची में,WorkContinuation
की गलत चेन बन सकती थी. (b/142835274, aosp/1157051)
डिपेंडेंसी में बदलाव
- WorkManager अब रूम 2.2.2 का इस्तेमाल करता है.
वर्शन 2.3.0-beta01
20 नवंबर, 2019
androidx.work:work-*:2.3.0-beta01
रिलीज़ हो गया है. वर्शन 2.3.0-beta01 में ये कमिट मौजूद हैं.
नई सुविधाएं
- एक नया लिंट नियम जोड़ा गया, जो मांग पर शुरू करने की सुविधा का इस्तेमाल करते समय,
androidx.work.Configuration.Provider
को गलत तरीके से लागू करने की वजह से डेवलपर की गड़बड़ियों को रोकता है. aosp/1164559
वर्शन 2.3.0-alpha03
23 अक्टूबर, 2019
androidx.work:work-*:2.3.0-alpha03
रिलीज़ हो गया है. वर्शन 2.3.0-alpha03 में ये कमियां हैं.
नई सुविधाएं
WorkManager.createCancelPendingIntent()
एपीआई जोड़ा गया. इसकी मदद से,AndroidManifest.xml
में कोई दूसरा कॉम्पोनेंट रजिस्टर किए बिना,WorkRequest
को आसानी से रद्द किया जा सकता है. इस एपीआई की मदद से, खास तौर परNotification
सेWorkRequest
को रद्द करना आसान हो जाता है. हमें उम्मीद है कि इसे 2.3.0 में नए फ़ोरग्राउंड एपीआई के साथ जोड़ दिया जाएगा.- WorkManager अब
androidx.room:*:2.2.0
स्टेबल पर निर्भर करता है.
एपीआई में किए गए बदलाव
- मौजूदा प्लैटफ़ॉर्म एपीआई के साथ ज़्यादा काम करने के लिए,
ForegroundInfo.getNotificationType()
का नाम बदलकरForegroundInfo.getForegroundServiceType()
किया गया. (b/142729893, aosp/1143316)
गड़बड़ियां ठीक की गईं
- ट्रांज़ैक्शन के बाहर
setTransactionSuccessful()
पर गैर-ज़रूरी कॉल करने की वजह से आई गड़बड़ी को ठीक कर दिया गया है. ऐसा बहुत कम मामलों में होने वाले माइग्रेशन के लिए होता है. (b/142580433, aosp/1141737)
वर्शन 2.3.0-alpha02
9 अक्टूबर, 2019
androidx.work:work-*:2.3.0-alpha02
रिलीज़ हो गया है. वर्शन 2.3.0-alpha02 में ये कमियां हैं.
नई सुविधाएं
- WorkManager अब लंबे समय तक चलने वाले या ज़रूरी काम को चलाने की सुविधा देता है, जिसे ओएस में बनाए रखना चाहिए. ज़्यादा जानकारी के लिए,
ListenableWorker#setForegroundAsync()
(या Kotlin के लिएCoroutineWorker#setForeground()
) देखें. (aosp/1133636)
एपीआई में किए गए बदलाव
Data
मेंcontainsKey
एपीआई का नाम बदलकर,hasKeyWithValueOfType
कर दिया गया है.ktx
लाइब्रेरी में, इससे जुड़े एक्सटेंशन के तरीके का नाम भी बदल दिया गया है. (b/141916545)
गड़बड़ियां ठीक की गईं
- जब कतार में
WorkRequest
की संख्या शेड्यूलिंग की सीमाएं होती हैं, तब WorkManager शेड्यूल सही तरीके से काम करता है. (aosp/1105766) - WorkManager
ListenableWorker#onStopped()
को सिर्फ़ तब कॉल करता है, जब काम पूरा नहीं हुआ हो. (b/140055777) - अब WorkManager, वर्कर के काम में रुकावट आने या टर्मिनल की स्थिति पर पहुंचने पर, प्रोग्रेस की जानकारी को हटा देता है. (aosp/1114572)
Data
में अब ज़्यादा काम कीtoString()
सुविधा उपलब्ध हो गई है. (b/140945323)Data
में अबequals()
तरीका बेहतर है. यहArray
टाइप के लिए,deepEquals
के साथ भी काम करता है. (b/140922528)- WorkManager अब अपने इंटरनल डेटाबेस और पसंदीदा फ़ाइलों को किसी बैकअप डायरेक्ट्री में सेव नहीं करता. (b/114808216)
वर्शन 2.3.0-alpha01
22 अगस्त, 2019
androidx.work:work-*:2.3.September 5, 20190-alpha01
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
नई सुविधाएं
ListenableWorker
अबsetProgressAsync()
एपीआई के ज़रिए प्रोग्रेस सेट कर सकते हैं. साथ ही,CoroutineWorker
में इससे जुड़ाsuspend
-ingsetProgress
एपीआई और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
का इंस्टेंस दिखाता है, तो WorkManagerIllegalStateException
का इंस्टेंस दिखाएगा. (b/139554406) ListenableFuture
की सदस्यता रद्द किए जाने औरListenableWorker
मेंonStopped()
कॉलबैक से जुड़े दस्तावेज़ों के अपडेट. (b/138413671)
गड़बड़ियां ठीक की गईं
- इन-प्रोसेस शेड्यूलर, अब
idle
कंस्ट्रेंट के साथWorkRequest
को अनदेखा कर देता है. अबJobScheduler
को ये अनुरोध तब ही मिलेंगे, जब डिवाइस असल मेंidle
पर होगा. (aosp/1089779) TestScheduler
अब जांच में अपने अंदरूनी टास्क एक्ज़ेक्यूटर के लिए बताए गएExecutor
का सही तरीके से इस्तेमाल करता है. (aosp/1090749)
वर्शन 2.2.0
वर्शन 2.2.0
15 अगस्त, 2019
androidx.work:work-*:2.2.0
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
यह रिलीज़, androidx.work:work-*:2.2.0-rc01
की तरह है.
2.1.0 से 2.2.0 में हुए अहम बदलाव
androidx.work:work-gcm:2.2.0
एक नया Maven आर्टफ़ैक्ट है. इसकी मदद से, शेड्यूलर के तौर पर GCMNetworkManager को तब इस्तेमाल किया जा सकता है, जब Google Play services, एपीआई लेवल <= 22 के लिए उपलब्ध हो. यह एक वैकल्पिक डिपेंडेंसी है. इससे एपीआई के पुराने वर्शन पर, ज़्यादा भरोसेमंद और बेहतर बैकग्राउंड प्रोसेसिंग में मदद मिलती है. अगर आपके ऐप्लिकेशन में Google Play services का इस्तेमाल किया जाता है, तो इस डिपेंडेंसी को अपनी ग्रेडल फ़ाइल में जोड़ें. इससे GCMNetworkManager से मदद अपने-आप मिल सकेगी. Play सेवाएं उपलब्ध न होने पर, WorkManager पुराने डिवाइसों पर AlarmManager पर वापस काम करता रहेगा.
वर्शन 2.2.0-rc01
30 जुलाई, 2019
androidx.work:work-*:2.2.0-rc01
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
गड़बड़ियां ठीक की गईं
- अलार्मManager लागू करने में आई गड़बड़ी को ठीक किया गया है. इसकी वजह से, सेवा समय से पहले बंद हो जाती है और बहुत कम मामलों में
RejectedExecutionException
मिल जाती है. (aosp/1092374) (b/138238197). - कुछ डिवाइसों पर
JobScheduler
API का इस्तेमाल करते समय,NullPointerException
के लिए समाधान जोड़ा गया. (aosp/1091020) (b/138364061), (b/138441699)
वर्शन 2.2.0-beta02
19 जुलाई, 2019
androidx.work:work-*:2.2.0-beta02
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
गड़बड़ियां ठीक की गईं
- अनजाने में हुई jacoco डिपेंडेंसी हटाई गई, जो
2.2.0-beta01
में जोड़ी गई थी.
वर्शन 2.2.0-beta01
17 जुलाई, 2019
androidx.work:work-*:2.2.0-beta01
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
नई सुविधाएं
androidx.work:work-gcm:2.2.0-beta01
एक नया Maven आर्टफ़ैक्ट है. इसकी मदद से, शेड्यूलर के तौर पर GCMNetworkManager को तब इस्तेमाल किया जा सकता है, जब Google Play services, एपीआई लेवल <= 22 के लिए उपलब्ध हो. यह एक वैकल्पिक डिपेंडेंसी है. इससे एपीआई के पुराने वर्शन पर, ज़्यादा भरोसेमंद और बेहतर बैकग्राउंड प्रोसेसिंग में मदद मिलती है. अगर आपके ऐप्लिकेशन में Google Play services का इस्तेमाल किया जाता है, तो इस डिपेंडेंसी को अपनी ग्रेडल फ़ाइल में जोड़ें. इससे GCMNetworkManager से मदद अपने-आप मिल सकेगी. Play सेवाएं उपलब्ध न होने पर, WorkManager पुराने डिवाइसों पर AlarmManager पर वापस काम करता रहेगा.
गड़बड़ियां ठीक की गईं
- Nvidia Shield K1 टैबलेट पर नेटवर्क की स्थिति ट्रैक करने के दौरान,
IllegalArgumentException
के लिए गड़बड़ी ठीक की गई. (aosp/1010188)
वर्शन 2.1.0
वर्शन 2.1.0
11 जुलाई, 2019
androidx.work:work-*:2.1.0
रिलीज़ हो गया है. यह रिलीज़, androidx.work:work-*:2.1.0-rc01
की तरह है.
2.0.1 से हुए अहम बदलाव
work-runtime-ktx
को अब Java 8 की ज़रूरत है. अगर आपको कोई समस्या आती है, तो अपनेbuild.gradle
में यह जानकारी जोड़ें:kotlinOptions { jvmTarget = "1.8" }
- WorkManager के लिए, मांग पर शुरू करने की सुविधा जोड़ी गई. इससे WorkManager तैयार हो जाएगा
सिर्फ़ तभी काम करते हैं, जब रेफ़रंस दिया गया हो. b/127497100 मांग पर शुरू करने के लिए, अपने प्रोजेक्ट को सेट अप करने के लिए:
- ऑटोमैटिक शुरू करने वाले टूल को बंद करें.
- अपने कस्टम
Application
ऑब्जेक्ट परConfiguration.Provider
लागू करें. WorkManager.getInstance()
के सभी संदर्भों को इसमें बदलेंWorkManager.getInstance(Context)
. इस बदलाव के तहत, हमनेWorkManager.getInstance()
अब काम नहीं करता. नए कॉल को कॉल करना हमेशा सुरक्षित रहता हैWorkManager.getInstance(Context)
को बदलना, भले ही न किया जा रहा हो मांग पर शुरू करना.
PeriodicWorkRequest
अब शुरुआती देरी के लिए काम करते हैं. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए शुरुआती सेट करने के लिए,PeriodicWorkRequest.Builder
परsetInitialDelay
तरीका देरी. b/111404867- इसका इस्तेमाल करके, रजिस्टर किए गए एक या उससे ज़्यादा
WorkerFactory
को ऐक्सेस देने की सुविधा जोड़ी गईDelegatingWorkerFactory
. b/131435993 - इसके लिए, WorkManager की मदद से इस्तेमाल किए जाने वाले
Executor
को पसंद के मुताबिक बनाने की सुविधा जोड़ी गईConfiguration.Builder.setTaskExecutor
के ज़रिए इसकी किताबों का रखरखाव किया जा सकता है. - ऐसी इकाई बनाने की सुविधा जोड़ी गई जिसकी जांच की जा सकती है.
Worker
औरListenableWorker
TestWorkerBuilder
औरTestListenableWorkerBuilder
का इस्तेमाल करके,work-testing
आर्टफ़ैक्ट.- ध्यान दें कि
work-testing
अब डिपेंडेंसी के तौर पर Kotlin को खींचता है और इसमें डिफ़ॉल्ट रूप से, कई Kotlin एक्सटेंशन होते हैं.
- ध्यान दें कि
WorkInfo
में दौड़ने की कोशिश की संख्या जोड़ी गई. b/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
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
गड़बड़ियां ठीक की गईं
ListenableWorker
के इंस्टेंस बनाते समय,TestListenableWorkerBuilder
अब सहीWorkerFactory
का इस्तेमाल करता है. b/135275844- उस गड़बड़ी को ठीक किया गया जो प्रोसेस बंद होने की वजह से,
WorkRequest
के लिए एक्ज़ीक्यूशन विंडो में ड्रिफ़्ट होती थी. b/135272196
वर्शन 2.1.0-beta01
13 जून, 2019
androidx.work:work-*:2.1.0-beta01
रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.
गड़बड़ियां ठीक की गईं
- WorkManager अब
Room 2.1.0
पर निर्भर करता है. इससे डेटाबेस से जुड़ी कुछ समस्याएं ठीक हो सकती हैं. - मुख्य थ्रेड से कुछ स्टार्टअप डिस्क I/O हटाई गईं.
- कंस्ट्रेंट ट्रैकिंग में आने वाले संभावित डेडलॉक को ठीक किया गया. बी/134361006
- WorkManager को एट्रिब्यूट की गई अमान्य जॉब पहले से रद्द की गईं. b/134058261
- डिवाइस ठीक से काम न करने वाले डिवाइसों के लिए, JobScheduler API में कुछ डिफ़ेंसिव कॉल जोड़े गए.
वर्शन 2.1.0-alpha03
5 जून, 2019
androidx.work:*:2.1.0-alpha03
रिलीज़ हो गया है.
गड़बड़ियां ठीक की गईं
PeriodicWorkRequest
के लिए बेहतर दस्तावेज़.WorkManagerTestInitHelper
अब जांच के लिए, सही बैकग्राउंड एक्ज़ीक्यूटर का इस्तेमाल करता है.- कुछ डिवाइसों पर बड़े लेन-देन करते समय, SQLite से जुड़ी समस्याओं को ठीक किया गया है. (b/130182503)
- WorkManager की डिपेंडेंसी अब पहले से ज़्यादा बारीक हो गई है. (b/133169148).
- WorkManager का इस्तेमाल करके, जॉब शेड्यूल करते समय,
JobScheduler
को लागू करने में OEM की खास गड़बड़ियों को ठीक करना. - अलार्मManager पर आधारित शेड्यूलर में, सेवा की अवधि के आस-पास ऐसे सुधार किए गए हैं जिनकी वजह से पहले कभी-कभी ऐप्लिकेशन क्रैश होता था. (b/133313734)
वर्शन 2.1.0-alpha02
16 मई, 2019
WorkManager 2.1.0-alpha02 रिलीज़ किया गया. इस वर्शन में कई नए एपीआई हैं.
एपीआई में किए गए बदलाव
PeriodicWorkRequest
अब शुरुआती देरी के लिए काम करते हैं. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए शुरुआती सेट करने के लिए,PeriodicWorkRequest.Builder
परsetInitialDelay
तरीका देरी. b/111404867इसका इस्तेमाल करके, रजिस्टर किए गए एक या उससे ज़्यादा
WorkerFactory
को ऐक्सेस देने की सुविधा जोड़ी गईDelegatingWorkerFactory
. b/131435993इसके लिए, WorkManager की मदद से इस्तेमाल किए जाने वाले
Executor
को पसंद के मुताबिक बनाने की सुविधा जोड़ी गईConfiguration.Builder.setTaskExecutor
के ज़रिए इसकी किताबों का रखरखाव किया जा सकता है.WorkRequest.keepResultsForAtLeast
के बारे में बेहतर दस्तावेज़ (b/130638001), मांग पर शुरू करना औरPeriodicWorkRequest.Builder
(b/131711394).
वर्शन 2.1.0-alpha01
24 अप्रैल, 2019
WorkManager 2.1.0-alpha01 रिलीज़ किया गया. इस वर्शन में कई नए एपीआई हैं. कृपया ध्यान दें कि इस वर्शन की शुरुआत में, ऐसी नई सुविधाएं जोड़ी जाएंगी जो 1.x रिलीज़ पर बैकपोर्ट नहीं किया जाएगा. हमारा सुझाव है कि आप 2.x पर स्विच करें.
एपीआई में किए गए बदलाव
- WorkManager के लिए, मांग पर शुरू करने की सुविधा जोड़ी गई. इससे WorkManager तैयार हो जाएगा
सिर्फ़ तभी काम करते हैं, जब रेफ़रंस दिया गया हो. b/127497100 मांग पर शुरू करने के लिए, अपने प्रोजेक्ट को सेट अप करने के लिए:
- ऑटोमैटिक शुरू करने वाले टूल को बंद करें.
- अपने कस्टम
Application
ऑब्जेक्ट परConfiguration.Provider
लागू करें. WorkManager.getInstance()
के सभी संदर्भों को इसमें बदलेंWorkManager.getInstance(Context)
. इस बदलाव के तहत, हमनेWorkManager.getInstance()
अब काम नहीं करता. नए कॉल को कॉल करना हमेशा सुरक्षित रहता हैWorkManager.getInstance(Context)
को बदलना, भले ही न किया जा रहा हो मांग पर शुरू करना.
- ऐसी इकाई बनाने की सुविधा जोड़ी गई जिसकी जांच की जा सकती है.
Worker
औरListenableWorker
TestWorkerBuilder
औरTestListenableWorkerBuilder
का इस्तेमाल करके,work-testing
आर्टफ़ैक्ट.- ध्यान दें कि
work-testing
अब Kotlin को डिपेंडेंसी के तौर पर चुनता है, लेकिन साथ ही इसमें डिफ़ॉल्ट रूप से, कई Kotlin एक्सटेंशन होते हैं.
- ध्यान दें कि
WorkInfo
में दौड़ने की कोशिश की संख्या जोड़ी गई. b/127290461Data
टाइप अब बाइट और बाइट अरे को स्टोर और वापस पा सकते हैं. इसमेंData
ऑब्जेक्ट का ज़्यादा से ज़्यादा साइज़ बदलें.CoroutineWorker.coroutineContext
अब काम नहीं करता. यह फ़ील्ड गलत थाCoroutineDispatcher
के तौर पर लिखा गया है; अब आपको इसकी ज़रूरत नहीं होगी, क्योंकि निलंबित करने वाले फ़ंक्शन के मुख्य हिस्से में, अपने मनचाहे CoroutineContext का इस्तेमाल करें.- अब
RxWorker.createWork()
औरRxWorker.getBackgroundScheduler()
@NonNull
रिटर्न टाइप के साथ एनोटेट किया गया है.
वर्शन 2.0.1
वर्शन 2.0.1
9 अप्रैल, 2019
WorkManager 2.0.1 रिलीज़ किया गया. यह रिलीज़ इससे मिलती-जुलती है 2.0.1-rc01.
वर्शन 2.0.1-rc01
3 अप्रैल, 2019
WorkManager 2.0.1-rc01 रिलीज़ किया गया है. इस वर्शन में कुछ गड़बड़ियां ठीक की गई हैं. इसके लिए 1.x लेगसी उपयोगकर्ता हैं, तो इनमें से कुछ बदलाव 1.0.1-rc01.
गड़बड़ियां ठीक की गईं
- Robolectric टेस्ट अब WorkManager के साथ ठीक से काम करते हैं. b/122553577
- किनारे वाले केस के क्रैश को ठीक किया गया, जिसमें कंस्ट्रेंट ट्रैकिंग को क्लीनअप नहीं किया जा रहा है pre- JobScheduler API. b/129226383
- काम की लंबी चेन के साथ काम करने वाले
StackOverflowError
को ठीक किया गया. b/129091233 - फ़्लेक्स टाइम है, यह बताने के लिए
PeriodicWorkRequest
के दस्तावेज़ अपडेट किए गए यह एपीआई 23 पर काम नहीं करता. - Kotlin दस्तावेज़ में कुछ काम न करने वाले लिंक ठीक किए गए.
वर्शन 2.0.0
वर्शन 2.0.0
20 मार्च, 2019
WorkManager 2.0.0 रिलीज़ किया गया. यह वर्शन 2.0.0-rc01 के जैसा है और यह स्टेबल वर्शन 1.0.0 का AndroidX वर्शन, जो AndroidX डिपेंडेंसी के साथ काम करता हो. हमारा सुझाव है कि आप: इस वर्शन को टारगेट करने के लिए किया जा रहा है. सभी सक्रिय डेवलपमेंट 2.x को लक्षित करेगा और 1.x को सीमित समय तक.
वर्शन 2.0.0-rc01
7 मार्च, 2019
WorkManager 2.0.0-rc01 रिलीज़ किया गया है. यह वर्शन, 1.0.0 स्टेबल वर्शन के जैसा है लेकिन इसमें AndroidX डिपेंडेंसी है. इसके 2.0.0 के स्थिर होने पर, आपको यह करना चाहिए इस वर्शन को शामिल करें और लेगसी 1.x वर्शन को सिर्फ़ कुछ अहम अपडेट मिलेंगे गड़बड़ियां ठीक की गईं. सभी ऐक्टिव डेवलपमेंट को 2.x को टारगेट किया जाएगा.
AndroidX से पहले की डिपेंडेंसी
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है रेफ़रंस के लिए दस्तावेज़: Java
ग्रूवी
dependencies { def work_version = "1.0.1" // (Java only) implementation "android.arch.work:work-runtime:$work_version" // Kotlin + coroutines implementation "android.arch.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "android.arch.work:work-rxjava2:$work_version" // optional - Test helpers androidTestImplementation "android.arch.work:work-testing:$work_version" }
Kotlin
dependencies { val work_version = "1.0.1" // (Java only) implementation("android.arch.work:work-runtime:$work_version") // Kotlin + coroutines implementation("android.arch.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("android.arch.work:work-rxjava2:$work_version") // optional - Test helpers androidTestImplementation("android.arch.work:work-testing:$work_version") }
वर्शन 1.0.1
वर्शन 1.0.1
9 अप्रैल, 2019
WorkManager 1.0.1 रिलीज़ किया गया. यह रिलीज़ इससे मिलती-जुलती है 1.0.1-rc01.
कृपया ध्यान दें कि हम उपयोगकर्ताओं को WorkManager 2.x को अपडेट करने की खास तौर पर सलाह देते हैं, क्योंकि आने वाले समय में, 1.x ब्रांच में बहुत कम अपडेट होंगे. नए एपीआई भी रिलीज़ नहीं की जाएगी.
वर्शन 1.0.1-rc01
2 अप्रैल, 2019
WorkManager 1.0.1-rc01 रिलीज़ किया गया है. इस वर्शन में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- Robolectric टेस्ट अब WorkManager के साथ ठीक से काम करते हैं. b/122553577
- किनारे वाले केस क्रैश को ठीक किया गया, जिसमें कंस्ट्रेंट ट्रैकिंग को क्लीनअप नहीं किया जा रहा है pre- JobScheduler API. b/129226383
- काम की लंबी चेन के साथ काम करने वाले
StackOverflowError
को ठीक किया गया. b/129091233
वर्शन 1.0.0
वर्शन 1.0.0
5 मार्च, 2019
यह WorkManager की 1.0.0 स्टेबल रिलीज़ है. WorkManager का यह वर्शन 1.0.0-rc02 के जैसा होना चाहिए.
वर्शन 1.0.0-rc02
21 फ़रवरी, 2019
यह WorkManager के 1.0.0 स्टेबल रिलीज़ के लिए, दूसरा रिलीज़ कैंडिडेट है. इस रिलीज़ में दो गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
ऐप्लिकेशन क्रैश होने के बाद,
Worker
अब सही तरीके से शेड्यूल किए गए हैं. b/124546316सही का निशान हटाए जाने वाले
Exception
को फेंकने वालेWorker
को अब सही तरीके से इसके तौर पर मार्क किया गया हैFAILED
साथ ही ऐप्लिकेशन को क्रैश या फ़्रीज़ होने से बचाएं.
वर्शन 1.0.0-rc01
14 फ़रवरी, 2019
यह WorkManager के 1.0.0 स्टेबल रिलीज़ के लिए, रिलीज़ कैंडिडेट है. इस रिलीज़ में एक गड़बड़ी ठीक की गई है.
गड़बड़ियां ठीक की गईं
- अलार्मManager पर आधारित काम करने का तरीका, अब
flex
विंडो का सही तरीके से पालन करता है ज़रूर करें. b/124274584
वर्शन 1.0.0-beta05
6 फ़रवरी, 2019
इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- उस मामले को ठीक किया गया जहां
JobScheduler.getPendingJob(...)
का इस्तेमाल एपीआई 23 पर किया गया था. b/123893059 - Android 5.1 (एपीआई लेवल 22) पर काम करने वाले डिवाइसों पर
NullPointerException
ठीक किया गया या उससे कम. b/123835104
वर्शन 1.0.0-beta04
4 फ़रवरी, 2019
इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- अलार्मManager पर आधारित सुविधा लागू करने के लिए,periodicWork के शेड्यूल को बेहतर बनाना.
- ऐसे मामले को ठीक किया गया जहां WorkManager पाबंदियों को सही तरीके से ट्रैक नहीं कर पाता, जब AlarmManager आधारित लागू करने की सुविधा का इस्तेमाल करके. b/123379508
- ऐसे मामले को ठीक किया गया जिसमें WorkManager, प्रोसेस डेथ पर काम करने की फिर से कोशिश नहीं कर पाता. ऐसा तब होता है, जब AlarmManager आधारित लागू करने की सुविधा का इस्तेमाल करके. b/123329850
- उस केस को ठीक किया गया है जिसकी वजह से WorkManager, AlarmManager आधारित लागू.
वर्शन 1.0.0-beta03
25 जनवरी, 2019
इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- हमने एक रिग्रेशन
1.0.0-beta02
शुरू किया, जिसकी वजह से काम पूरा नहीं हो सका कुछ मामलों में सही तरीके से. b/123211993 - एक ऐसे मामले को ठीक किया गया है जिसमें काम, बैकऑफ़ टाइम पर ठीक से काम नहीं करता था. b/122881597
- Android 5.1 (एपीआई) चलाने वाले डिवाइसों पर
ConcurrentModificationException
ठीक किया गया या) या उससे कम. इस समस्या को ठीक करने के लिए,1.0.0-beta02
में एक सिलसिला जारी है. b/121345393 - हमारी मेनिफ़ेस्ट फ़ाइल में उन कॉम्पोनेंट के लिए
exported=false
जोड़ा गया जो उपलब्ध नहीं थे यह एनोटेशन. - इसमें यह जानकारी शामिल की गई है कि WorkManager, ओएस के साथ कैसे इंटरैक्ट करता है पैकेज लेवल का दस्तावेज़.
वर्शन 1.0.0-beta02
15 जनवरी, 2019
इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- एक किनारे वाला मामला तय किया गया जहां समय-समय पर हर अंतराल में एक से ज़्यादा बार काम हो सकता था Android 6.0 (एपीआई लेवल 23) वाले डिवाइसों पर. b/121998363
- Android 5.1 (एपीआई) चलाने वाले डिवाइसों पर
ConcurrentModificationException
ठीक किया गया लेवल 22) या उससे कम. b/121345393 - डिवाइसों पर पाबंदियां पूरी न होने पर, काम को गलत तरीके से किए जाने की समस्या को ठीक किया गया जो Android 5.1 (एपीआई लेवल 22) या इससे पहले के वर्शन पर काम कर रहे हों. b/122578012
- कुछ मामलों में, काम पूरा होने की प्रोसेस को ऑप्टिमाइज़ किया गया है, ताकि तेज़ी से काम किया जा सके. b/122358129
- कई इंस्टेंस में संभावित रेस स्थितियों के बारे में पता करने के लिए बदलाव जोड़ा गया
का
LiveData
है, जिसे WorkManager इस्तेमाल करता है. 1.1.1-rc01
के बजाय,Room
डिपेंडेंसी1.1.1
का इस्तेमाल करने के लिए ले जाया गया; यह वर्शन एक जैसे हैं. b/122578011
वर्शन 1.0.0-beta01
19 दिसंबर, 2018
इस रिलीज़ में, एपीआई में कोई बदलाव नहीं किया गया है; आने वाले समय में, WorkManager को उम्मीद है कि अगले वर्शन तक एपीआई एक जैसा काम करेगा. ऐसा तब तक होगा, जब तक कोई गंभीर समस्या न हो. इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- माता-पिता के पूरे हो चुके काम के बाद, रद्द किए गए बच्चे अब नहीं चलेंगे. b/120811767
- सही तरीके से शुरू की गई लॉगिंग क्लास (मुख्य रूप से टेस्ट के दौरान दिखती हैं).
वर्शन 1.0.0-alpha13
12 दिसंबर, 2018
इस रिलीज़ में एपीआई का एक छोटा सा बदलाव शामिल है. यह Kotlin के कुछ उपयोगकर्ताओं के लिए मददगार होगा.
एपीआई में किए गए बदलाव
androidx.work.Result
कोListenableWorker
की अंदरूनी क्लास में ले जाया गया है. यह Kotlin की टॉप-लेवलResult
क्लास के साथ कॉन्फ़्लिक्टिंग को रीफ़ैक्टर करने से रोकता है. यह एपीआई में किया गया बदलाव तोड़ने वाला है. b/120564418
तीसरे पक्ष के एपीआई में हुए बदलाव
androidx.work.Result
कोListenableWorker
की अंदरूनी क्लास में ले जाया गया है.
वर्शन 1.0.0-alpha12
5 दिसंबर, 2018
इस रिलीज़ में, नुकसान पहुंचाने वाले एपीआई में हुए कुछ बदलाव शामिल हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें. इस वर्शन को हमारे पहले बीटा वर्शन के तौर पर रिलीज़ किए जाने की संभावना है. alpha12
में दस्तावेज़ों से जुड़े ज़्यादा अपडेट भी मिलते हैं.
एपीआई में किए गए बदलाव
- एक नया आर्टफ़ैक्ट,
work-rxjava2
,RxWorker
के बारे में बताता है. यह एकListenableWorker
है, जोSingle<Payload>
की ज़रूरत है. - Firebase JobDispatcher की सुविधा जल्द ही बंद होने की वजह से इसे हटा दिया गया है. इसका मतलब है कि हम बीटा वर्शन में काम करेंगे. इस वजह से, अब
work-firebase
आर्टफ़ैक्ट को अपडेट नहीं किया जाएगा. हम आने वाले समय में, कोई अन्य विकल्प जोड़ने पर काम कर रहे हैं. Payload
कोResult
में मिलाया गया.Result
अब "सील की गई क्लास" है इसे तीन तरीके से लागू किया जा सकता है, जिन्हेंResult.success()
(याResult.success(Data)
),Result.failure()
(याResult.failure(Data)
), औरResult.retry()
से डाउनलोड किया जा सकता है. आपकेListenableFuture
को अबPayload
के बजायResult
नतीजे मिल रहे हैं.Worker
के पासData
आउटपुट के लिए गैटर और सेटर तरीके नहीं हैं. यह बदलाव नुकसान पहुंचा सकता है.- धीमे ट्रिगर होने वाले कॉन्टेंट यूआरआई के साथ बेहतर तरीके से काम करने के लिए,
Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)
औरConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)
के साथ-साथ वैरिएंट भी जोड़े गए. b/119919774 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)
वैरिएंट जोड़ा गया. इस तरीके का इस्तेमाल करने के लिए, एपीआई 26 का इस्तेमाल करना ज़रूरी है.Operation.await()
औरListenableFuture.await()
Kotlin एक्सटेंशन के तरीके जोड़े गए.Operation.getException()
का नाम बदलकरOperation.getThrowable()
किया गया. यह बदलाव नुकसान पहुंचा सकता है.ContentUriTriggers
क्लास और इसे रेफ़र करने वाले तरीकों का इस्तेमाल, अब सार्वजनिक तौर पर नहीं किया जा सकता. यह बदलाव नुकसान पहुंचा सकता है.- एपीआई को आसान बनाने के लिए,
WorkManager
,WorkContinuation
, औरOneTimeWorkRequest
में वैरिग के बाकी तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा वैरर्ग कोArrays.asList(...)
के साथ रैप करें. हम अब भी हर तरीके के एक-आकलन वाले वर्शन शामिल करते हैं. यह बदलाव नुकसान पहुंचा सकता है. WorkContinuation.combine(OneTimeWorkRequest, *)
वैरिएंट हटाए गए. वे एक जटिल एपीआई दिखा रहे थे;combine
के मौजूदा तरीके समझने में ज़्यादा आसान हैं. यह बदलाव नुकसान पहुंचा सकता है.
गड़बड़ियां ठीक की गईं
- प्री-Marshmallow लागू करने की प्रोसेस, पहले से चल रहे टास्क के खत्म होने की प्रोसेस से रिकवर करने के लिए अब ज़्यादा भरोसेमंद हो गई है.
observeForever
के ज़रिए मॉनिटर की गईLiveData
को WorkManager की मदद से ट्रैक किया जाता है. यह रूम लाइब्रेरी वाले समाधान का बैकपोर्ट है. b/74477406- अगर क्रम से लगाए गए ऑब्जेक्ट का साइज़ तय सीमा से ज़्यादा होता है, तो
Data.Builder.build()
अब अपवाद दिखाता है. ऐसा पहले सिर्फ़ बैकग्राउंड थ्रेड पर होता था, जहां इसे ठीक से मैनेज नहीं किया जा सकता था. - रोका गया काम बनाम रद्द किया गया काम;
getWorkInfoById()
,ListenableWorker.onStopped()
के दौरानCANCELLED
State
के साथWorkInfo
दिखाएगा. ListenableWorker
मेंnull
Result
को पूरा नहीं हुआ के तौर पर मानें. बी/120362353- एपीआई 24 पर चलने वाले शील्ड टैबलेट के लिए, अनुमान के हिसाब से किए गए बदलाव, जिनमें कभी-कभी
IllegalArgumentException
का इस्तेमाल किया जाता है. b/119484416
तीसरे पक्ष के एपीआई में हुए बदलाव
- Firebase JobDispatcher की सुविधा जल्द ही बंद होने की वजह से इसे हटा दिया गया है. इसका मतलब है कि हम बीटा वर्शन में काम करेंगे. इस वजह से, अब
work-firebase
आर्टफ़ैक्ट को अपडेट नहीं किया जाएगा. हम आने वाले समय में, कोई अन्य विकल्प जोड़ने पर काम कर रहे हैं. Payload
कोResult
में मिलाया गया.Result
अब "सील की गई क्लास" है इसे तीन तरीके से लागू किया जा सकता है, जिन्हेंResult.success()
(याResult.success(Data)
),Result.failure()
(याResult.failure(Data)
), औरResult.retry()
से डाउनलोड किया जा सकता है. आपकेListenableFuture
को अबPayload
के बजायResult
नतीजे मिल रहे हैं.Worker
के पासData
आउटपुट के लिए गैटर और सेटर तरीके नहीं हैं.Operation.await()
औरListenableFuture.await()
Kotlin एक्सटेंशन के तरीके जोड़े गए.Operation.getException()
का नाम बदलकरOperation.getThrowable()
किया गया.ContentUriTriggers
क्लास और इसे रेफ़र करने वाले तरीकों का इस्तेमाल, अब सार्वजनिक तौर पर नहीं किया जा सकता.- एपीआई को आसान बनाने के लिए,
WorkManager
,WorkContinuation
, औरOneTimeWorkRequest
में वैरिग के बाकी तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा वैरर्ग कोArrays.asList(...)
के साथ रैप करें. हम अब भी हर तरीके के एक-आकलन वाले वर्शन शामिल करते हैं. WorkContinuation.combine(OneTimeWorkRequest, *)
वैरिएंट हटाए गए. वे एक जटिल एपीआई दिखा रहे थे;combine
के मौजूदा तरीके समझने में ज़्यादा आसान हैं.
वर्शन 1.0.0-alpha11
8 नवंबर, 2018
इस रिलीज़ में कई बदलाव किए गए हैं, जो beta
पर स्थिर एपीआई में बदल जाएंगे.
इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें.
एपीआई में किए गए बदलाव
work-runtime-ktx
, एक नयाCoroutineWorker
पेश करता है.WorkStatus
का नाम बदलकरWorkInfo
कर दिया गया है.getStatus
तरीके के सभी वैरिएंट के नाम बदलकर, संबंधितgetWorkInfo
वैरिएंट. यह बदलाव नुकसान पहुंचा सकता है.ListenableWorker.onStopped()
में अब बूलियन तर्क स्वीकार नहीं किया जाता. इससे पता चलता है किWorkRequest
का इस्तेमाल रद्द किया गया है या नहीं.WorkManager
अब यह अंतर नहीं करता. यह बदलाव नुकसान पहुंचा सकता है.androidx.work.test
पैकेज का नाम बदलकरandroidx.work.testing
पैकेज कर दिया गया है. यह बदलाव नुकसान पहुंचा सकता है.Constraints
पर मौजूद सेटर अब सार्वजनिक एपीआई का हिस्सा नहीं हैं. यह बदलाव नुकसान पहुंचा सकता है.WorkerParameters.getTriggeredContentUris()
औरWorkerParameters.getTriggeredContentAuthorities()
ने पहले अरे दिखाया है. अब इन तरीकों से संग्रह वापस आते हैं. यह बदलाव नुकसान पहुंचा सकता है.ListenableWorker.onStartWork()
का नाम बदलकरListenableWorker.startWork()
कर दिया गया है. यह बदलाव नुकसान पहुंचा सकता है.WorkStatus
का कंस्ट्रक्टर अब सार्वजनिक एपीआई का हिस्सा नहीं है. यह बदलाव नुकसान पहुंचा सकता है.Configuration.getMaxJobSchedulerID()
औरConfiguration.getMinJobSchedulerID()
का नाम बदलकरConfiguration.getMinJobSchedulerId()
किया गया औरConfiguration.getMaxJobSchedulerId()
. यह बदलाव नुकसान पहुंचा सकता है.- एपीआई के एर्गोनॉमिक्स को बेहतर बनाने के लिए, Public API में कई
@NonNull
एनोटेशन जोड़े गए हैं. - यूनीक
OneTimeWorkRequest
को सूची में जोड़ने के लिए,WorkContinuation
बनाए बिनाWorkManager.enqueueUniqueWork()
एपीआई जोड़ें. WorkManager
परenqueue
औरcancel
तरीकों के सभी वैरिएंट, अबOperation
का नया टाइप दिखाते हैं. यह बदलाव नुकसान पहुंचा सकता है.enqueue
के सभी वैरिएंट, अबWorkRequest
के लिए varrc को स्वीकार नहीं करते. यह बदलाव नुकसान पहुंचा सकता है. इसके बजाय, संग्रह का इस्तेमाल करें. मौजूदा कोड में बदलाव करने के लिए,Arrays.asList()
का इस्तेमाल किया जा सकता है. हमने ऐसा एपीआई प्लैटफ़ॉर्म और तरीकों की संख्या को कम करने के लिए किया है.- हर प्रोसेस के लिए एक से ज़्यादा बार
initialize
WorkManager
की कोशिश करने पर, अबIllegalStateException
मिलेगा. यह बदलाव नुकसान पहुंचा सकता है.
गड़बड़ियां ठीक की गईं
work-runtime-ktx
आर्टफ़ैक्ट में मौजूदWorkRequest.Builder
अबListenableWorker
का इस्तेमाल करते हैं. b/117666259 को ठीक करता है- पक्का करें कि
PeriodicWork
के लिए, रनटाइम का अगला वर्शन आने वाले समय का हो. b/118204399 को ठीक करता है - ऐप्लिकेशन स्टार्टअप पर WorkManager का इस्तेमाल करते समय, संभावित डिस्क I/O हटाएं. b/117796731 को ठीक किया गया
WorkConstraintsTracker
में रेस कंडिशन ठीक करें. android-workmanager/issues/56 को ठीक करता है
तीसरे पक्ष के एपीआई में हुए बदलाव
WorkStatus
का नाम बदलकरWorkInfo
कर दिया गया है.getStatus
तरीके के सभी वैरिएंट के नाम बदलकर, संबंधितgetWorkInfo
वैरिएंट.ListenableWorker.onStopped()
में अब बूलियन तर्क स्वीकार नहीं किया जाता. इससे पता चलता है किWorkRequest
का इस्तेमाल रद्द किया गया है या नहीं.WorkManager
अब यह अंतर नहीं करता.androidx.work.test
पैकेज का नाम बदलकरandroidx.work.testing
पैकेज कर दिया गया है.Constraints
पर मौजूद सेटर अब सार्वजनिक एपीआई का हिस्सा नहीं हैं.WorkerParameters.getTriggeredContentUris()
औरWorkerParameters.getTriggeredContentAuthorities()
ने पहले अरे दिखाया है. अब इन तरीकों से संग्रह वापस आते हैं.ListenableWorker.onStartWork()
का नाम बदलकरListenableWorker.startWork()
कर दिया गया है.WorkStatus
का कंस्ट्रक्टर अब सार्वजनिक एपीआई का हिस्सा नहीं है.Configuration.getMaxJobSchedulerID()
औरConfiguration.getMinJobSchedulerID()
का नाम बदलकरConfiguration.getMinJobSchedulerId()
किया गया औरConfiguration.getMaxJobSchedulerId()
.WorkManager
परenqueue
औरcancel
तरीकों के सभी वैरिएंट, अबOperation
का नया टाइप दिखाते हैं.enqueue
के सभी वैरिएंट, अबWorkRequest
के लिए varrc को स्वीकार नहीं करते.- हर प्रोसेस के लिए एक से ज़्यादा बार
initialize
WorkManager
की कोशिश करने पर, अबIllegalStateException
मिलेगा.
वर्शन 1.0.0-alpha10
11 अक्टूबर, 2018
इस रिलीज़ में, एसिंक्रोनस काम को डेवलपर कंट्रोल करता है. इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें.
हमारा अनुमान है कि WorkManager अपनी ऐल्फ़ा पीरियड के आखिरी चरण में पहुंच रहा है. हमें उम्मीद है कि बीटा वर्शन में एपीआई की परफ़ॉर्मेंस हमेशा बेहतर होगी. इसलिए, कृपया थोड़ा समय निकालकर हमारे समस्या को ट्रैक करने वाले टूल पर अपनी शिकायत दर्ज करें.
एपीआई में किए गए बदलाव
- पहले के सभी
deprecated
तरीकों और क्लास को हटा दिया गया है. खास तौर पर, यह डिफ़ॉल्टWorker
कंस्ट्रक्टर है. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है. NonBlockingWorker
का नाम बदलकरListenableWorker
कर दिया गया है. अब इसे सार्वजनिक तौर पर दिखाया जा सकता है. साथ ही, इसका इस्तेमाल किया जा सकता है.ListenableWorker
से आपको एक ऐब्स्ट्रैक्ट तरीके का ऐक्सेस मिलता है,ListenableFuture<Payload> onStartWork()
जिसे मुख्य थ्रेड पर कॉल किया जाता है. एसिंक्रोनस रूप से काम शुरू और प्रोसेस करने का काम आप पर है. काम पूरा होने के बाद, आपकोListenableFuture
को सही तरीके से अपडेट कर लेना चाहिए.ListenableFuture
के रेफ़रंस को लागू करने की जानकारी,alpha02
केFutures
पैकेज में दी गई है (WorkManager
सेक्शन के नीचे देखें).Worker
,ListenableWorker
की समयावधि में काम करता है. साथ ही, यह अब भी पहले की तरह काम करता है. इसमें, ऐब्स्ट्रैक्टResult doWork()
तरीके का इस्तेमाल किया गया है.- कुछ तरीकों और सदस्यों को
Worker
सेListenableWorker
में शफ़ल किया गया. - हम जल्द ही, उन
ListenableWorker
के लिए रेफ़रंस लागू करने की सुविधा देंगे जो Kotlin कोरूटीन (स्टेबल वर्शन के रिलीज़ होने के बाद) और RxJava2 का इस्तेमाल करते हैं.
- इंटरफ़ेस
WorkerFactory
और लागू करने के सहीDefaultWorkerFactory
तरीकों कोWorkerFactory
नाम के ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है. लागू करने से यह पक्का होता है कि रिफ़्लेक्शन पर आधारित डिफ़ॉल्ट व्यवहार को, उपयोगकर्ता के बनाए गए किसी भीWorkerFactory
इंस्टेंस के लिए आखिरी बार के तौर पर कॉल किया जाए. यह बदलाव नुकसान पहुंचा सकता है. WorkManager.synchronous()
,WorkContinuation.synchronous()
, और इससे जुड़े सभी तरीके हटाए गए.ListenableFuture<Void>
को एपीआई में, कई तरीकों के रिटर्न टाइप के तौर पर जोड़ा गया. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.- अब आप
ListenableFuture
का इस्तेमाल करके सिंक्रोनस रूप से पा सकते हैं और निगरानी कर सकते हैं. उदाहरण के लिए,void
रिटर्न के लिएWorkManager.enqueue()
का इस्तेमाल किया गया; अब यहListenableFuture<Void>
दिखाता है. कार्रवाई पूरी होने के बाद, कोड चलाने के लिएListenableFuture.addListener(Runnable, Executor)
याListenableFuture.get()
को कॉल करें. - ध्यान दें कि ये
ListenableFuture
आपको नहीं बताते कि कार्रवाई सफल रही या नहीं; सिर्फ़ इतना ही नहीं होता. इस जानकारी को ढूंढने के लिए, आपको अब भी WorkManager के अलग-अलग तरीकों को चेन करना होगा. - हम इन ऑब्जेक्ट पर
cancel()
कॉल को अनदेखा कर देते हैं, क्योंकि वे भ्रम की स्थिति पैदा करते हैं और इस बारे में तर्क करना मुश्किल होता है (क्या आप कार्रवाई या उसके नतीजे को रद्द कर रहे हैं?). यहFuture
के अनुबंध के अंदर है. - सिंक किए गए
getStatus*
तरीकों के साथ समानता बनाए रखने के लिए, हमनेListenableFuture
वैरिएंट दिए हैं. साथ ही, उन मौजूदा वैरिएंट का नाम बदल दिया है जोLiveData
दिखाते हैं, ताकि उनका नाम साफ़ तौर पर "LiveData" हो जाए नाम के हिस्से के तौर पर शामिल करें (उदाहरण के लिए,getStatusesByIdLiveData(UUID)
). यह एपीआई में किया गया बदलाव नुकसान पहुंचाने वाला है.
- अब आप
गड़बड़ियां ठीक की गईं
- डुप्लीकेट
androidx-annotations.pro
फ़ाइलों से जुड़ी अल्फ़ा09 समस्या को ठीक कर दिया गया है.exclude 'META-INF/proguard/androidx-annotations.pro'
को अपनी ग्रेड फ़ाइल से मिटाकर, पिछले रिलीज़ नोट से इस समस्या को हल किया जा सकता है. - नए
Worker
कंस्ट्रक्टर को बनाए रखने के लिए, ProGuard कॉन्फ़िगरेशन जोड़े गए. b/116296569 - जहां काम
REPLACE
दिनों में हुआ था उस रेस कंडिशन में, संभावितNullPointerException
को ठीक करें. b/116253486 और b/116677275 WorkContinuation.combine()
अब दो या ज़्यादा के बजाय एक या उससे ज़्यादाWorkContinuation
स्वीकार करता है. b/117266752
तीसरे पक्ष के एपीआई में हुए बदलाव
- पहले के सभी
deprecated
तरीकों और क्लास को हटा दिया गया है. खास तौर पर, यह डिफ़ॉल्टWorker
कंस्ट्रक्टर है. - इंटरफ़ेस
WorkerFactory
और लागू करने के सहीDefaultWorkerFactory
तरीकों कोWorkerFactory
नाम के ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है. WorkManager.synchronous()
औरWorkContinuation.synchronous()
हटाए गए.WorkManager.getStatus*()
तरीकों से अबListenableFuture
s नतीजे मिलते हैं.WorkManager.getStatus*LiveData()
,LiveData
रिटर्न करते हैं.
वर्शन 1.0.0-alpha09
19 सितंबर, 2018
आम समस्या
अगर आपको इस समस्या का सामना करना पड़ता है: "अगर ओएस इंडिपेंडेंट पाथ 'META-INF/proGuard/androidx-annotations.pro'' में एक से ज़्यादा फ़ाइलें मिली हैं", तो कृपया अपनी Gradle फ़ाइल में कुछ समय के लिए इस समस्या को हल करें. इस दौरान, हम इस समस्या को Alphabet10 में ठीक कर देंगे:
ग्रूवी
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
गड़बड़ियां ठीक की गईं
- "100 जॉब" के लिए ज़रूरी एक और सुधार जोड़ा गया गड़बड़ी. बी/115560696
- रेस की स्थितियों की वजह से, विदेशी कुंजी की कंस्ट्रेंट से जुड़ी गड़बड़ियों के लिए, कुछ समाधान जोड़े गए. b/114705286
- मौजूदा
Worker
कोConstraintTrackingWorker.onStopped(boolean)
कॉल सौंपे गए. b/114125093 - Firebase JobDispatcher के लिए सही कम से कम बैकऑफ़ देरी लागू करें. b/113304626
- थ्रेडिंग की बेहतर सुविधा, लाइब्रेरी के अंदर काम करने की गारंटी देती है.
LiveData
की अंदरूनी तौर पर डुप्लीकेट कॉपी करने से जुड़ी संभावित समस्या को ठीक करें.
एपीआई में किए गए बदलाव
- अब
WorkManager.Configuration
के हिस्से के तौर परWorkerFactory
तय करके, रनटाइम के दौरान अपनेWorker
इंस्टेंस बनाए जा सकते हैं. फ़ॉलबैक फ़ैक्ट्रीDefaultWorkerFactory
है, जो WorkManager के पिछले वर्शन के व्यवहार से मेल खाता है.Worker
औरNonBlockingWorker
के लिए डिफ़ॉल्ट कंस्ट्रक्टर को अब 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है. कृपया नए कंस्ट्रक्टर (Worker(Context, WorkerParameters)
) का इस्तेमाल करें औरsuper(Context, WorkerParameters)
को कॉल करें; WorkManager के आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.
- हमने अपने संगठन में,
ListenableFuture
आर्टफ़ैक्ट का इस्तेमाल करना शुरू कर दिया है. यह Guava पर निर्भर नहीं है. आने वाली रिलीज़ में, हम इस एपीआई में LookableFutures की सुविधा शामिल करेंगे. इस बदलाव के बाद,NonBlockingWorker
को दिखाया जा सकेगा. TestDriver.setInitialDelayMet(UUID)
औरTestDriver.setPeriodDelayMet(UUID)
के ज़रिए,TestDriver
में तय समय पर काम को ट्रिगर करने की सुविधा जोड़ें. b/113360060
नुकसान पहुंचाने वाले बदलाव
- डिफ़ॉल्ट
Worker
औरNonBlockingWorker
कंस्ट्रक्टर काम नहीं करते हैं. कृपया जल्द से जल्द नए कंस्ट्रक्टर पर माइग्रेट करें. आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.
वर्शन 1.0.0-alpha08
27 अगस्त, 2018
गड़बड़ियां ठीक की गईं
- WorkManager कॉम्पोनेंट को सीधे तौर पर बूट करने की जानकारी के तौर पर लेबल किया गया है. इससे उन्हें डायरेक्ट बूट के दौरान चालू नहीं किया जा सकता. आने वाले समय में, हम WorkManager का ऐसा वर्शन उपलब्ध कराएंगे जिसमें सीधे तौर पर बूट करने की जानकारी हो. बी/112665532
- उस समस्या को ठीक कर दिया गया है, जिसकी दोबारा कोशिश करने पर वह काम नहीं कर रहा था. बी/112604021
- बार-बार लागू न होने वाले काम को ठीक किया गया. यह ऊपर बताई गई समस्या से जुड़ा है. बी/112859683
- जब ऐप्लिकेशन की प्रोसेस पहले से चल रही हो, तो बैकऑफ़ नीतियां लागू की जाती हैं.
Data
में मौजूद अपवाद वाले मैसेज को ठीक कर दिया गया है, ताकि यह पता चल सके कि यह फ़ाइल 10 केबी की है.JobScheduler
की प्रोसेसिंग पूरी होने में लगने वाले कुछ समय के लिए,Configuration.setMaxSchedulerLimit(int)
की ज़्यादा से ज़्यादा वैल्यू को घटाकर 50 किया गया. b/112817355
वर्शन 1.0.0-alpha07
16 अगस्त, 2018
गड़बड़ियां ठीक की गईं
- नेगेटिव सीमाओं वाली संभावित SQL क्वेरी को ठीक किया गया, जो बिना सीमा वाले नतीजे दिखा सकती थी.
- जिस काम का निष्पादन पूरा हो गया है वह अब अन्य शेड्यूलर में उस काम की सभी लंबित कॉपी को ठीक से रद्द कर देता है. इस वजह से,
JobScheduler
के लिए तय सीमा पार हो गई. b/111569265 ConstraintTracker
मेंConcurrentModificationException
को ठीक किया गया. बी/112272753- रिटर्न टाइप एनोटेशन को
Data.getBooleanArray(String)
औरData.getIntArray(String)
के एनोटेशन को@NonNull
के बजाय@Nullable
में बदला गया. बी/112275229
एपीआई में किए गए बदलाव
Worker
अब नई क्लास,NonBlockingWorker
का विस्तार करता है. इससे, ऐप्लिकेशन के मौजूदा इस्तेमाल पर कोई असर नहीं पड़ता. आने वाले समय में,NonBlockingWorker
पर कस्टम थ्रेडिंग की सुविधा काम करती है.- रिटर्न टाइप एनोटेशन को
Data.getBooleanArray(String)
औरData.getIntArray(String)
के एनोटेशन को@NonNull
के बजाय@Nullable
में बदला गया. बी/112275229 - Kotlin एक्सटेंशन:
Map.toWorkData()
के इस्तेमाल से रोक दी गई है. साथ ही, मौजूदा एपीआई के साथ ज़्यादा काम करने के लिए, टॉप लेवलworkDataOf(vararg Pair<String, Any?>)
जोड़े गए.
वर्शन 1.0.0-alpha06
1 अगस्त 2018
गड़बड़ियां ठीक की गईं
- काम शेड्यूल करते समय, डेटाबेस को लॉक होने से बचाएं. b/111801342
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से
PeriodicWork
, बैटरी बचाएं (डोज़) मोड में होने पर शेड्यूल पर नहीं चलता. b/111469837 - उन कंस्ट्रेंट को ट्रैक करते समय रेस कंडिशन को ठीक करें जिनकी वजह से
WorkManager
क्रैश होता है. googlecodelabs/android-workmanager/issues/56 WorkRequest.Builder#build()
का इस्तेमाल करते समय यूनीकWorkRequest
बनाएं. b/111408337RescheduleReceiver
का इस्तेमाल सिर्फ़ तब चालू करें, जबWorkRequest
s को इसकी ज़रूरत हो. 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 अब ऑटो-बैकअप के ज्ञात मामलों के दौरान काम का निष्पादन नहीं करता. इस वजह से, आपका ऐप्लिकेशन क्रैश हो सकता है. बी/110564377
JobScheduler
का इस्तेमाल करते समयPeriodicWorkRequest
की डबल-शेड्यूलिंग को ठीक किया गया. बी/110798652- डिवाइस के बंद होने के बाद भी
PeriodicWorkRequest
ठीक से काम नहीं कर रहे थे, इस समस्या को ठीक कर दिया गया है. b/111469837 - Firebase JobDispatcher का इस्तेमाल करते समय शुरुआती देरी से जुड़ी समस्या ठीक की गई. b/111141023
- रेस की कुछ संभावित स्थितियों और समय से जुड़ी समस्याओं को ठीक किया गया.
- सही तरीके से
BroadcastReceiver
खाली किए गए, जिनकी अब ज़रूरत नहीं थी. - ज़बरदस्ती बंद किए जाने के बाद ऐप्लिकेशन रीस्टार्ट होने पर, फिर से शेड्यूल करने की परफ़ॉर्मेंस ऑप्टिमाइज़ की गई.
TestScheduler.setAllConstraintsMet(UUID)
को दिए गएWorkRequest
के क्रम में लगाने से पहले या बाद में कॉल करने की अनुमति दी गई. b/111238024
नुकसान पहुंचाने वाले बदलाव
WorkManager.getInstance()
को अब@Nullable
के बजाय@NonNull
से एनोटेट किया जाता है.Data.getString()
का हस्ताक्षर बदल दिया गया है, ताकि अब इसे डिफ़ॉल्ट वैल्यू न लेनी पड़े (यह साफ़ तौर परnull
है).- कुछ तरीकों को
@hide
के तौर पर मार्क किया गया है, जो सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी हैं. इनमेंConstraints
कंस्ट्रक्टर,Data.toByteArray()
, औरData.fromByteArray(byte[])
शामिल हैं.
वर्शन 1.0.0-alpha04
26 जून, 2018
गड़बड़ियां ठीक की गईं
AlarmManager
पर आधारित लागू करने के तरीके का इस्तेमाल करते समय,PeriodicWorkRequest
अब सही तरीके से फिर से शेड्यूल किए जाते हैं.- फ़ोर्स स्टॉप या फिर से चालू होने के बाद, सभी कर्मियों को फिर से शेड्यूल करते समय संभावित ANR की गड़बड़ी ठीक की गई. b/110507716
- अलग-अलग WorkManager एपीआई में, अमान्य वैल्यू वाले एनोटेशन जोड़े गए. b/110344065
- वर्कर एक्ज़ीक्यूशन के दौरान, उन अपवादों को लॉग करें जिन्हें पहचाना नहीं जा सका. b/109900862
- अगर आपको WorkManager के पुराने वर्शन पर रोल बैक करना है, तो इस डेटा को नुकसान पहुंचाने वाले डेटाबेस के माइग्रेशन की अनुमति दी जाती है. b/74633270
- डुप्लीकेट इंप्लिसिट टैग बनाने पर होने वाले माइग्रेशन क्रैश को ठीक किया गया. ऐसा बहुत कम होता है, जो तब होती है, जब आपने खुद इस इंप्लिसिट टैग फ़ॉर्मैट का इस्तेमाल किया हो.
वर्शन 1.0.0-alpha03
19 जून, 2018
गड़बड़ियां ठीक की गईं
AlarmManager
के आधार पर लागू करने की प्रोसेस में रेस कंडिशन को ठीक किया गया. b/80346526.डिवाइस को फिर से चालू करने के बाद,
JobScheduler
का इस्तेमाल करते समय डुप्लीकेट जॉब ठीक किए गए.कॉन्टेंट यूआरआई वाले जॉब अब फिर से चालू होने पर लागू रहते हैं. b/80234744
दस्तावेज़ से जुड़े अपडेट. b/109827628, b/109758949, b/80230748
WorkRequest
को फिर से लाइन में जोड़ने के दौरान होने वाले क्रैश की समस्या ठीक की गई. b/109572353.work-runtime-ktx
डिपेंडेंसी का इस्तेमाल करते समय, Kotlin कंपाइलर की चेतावनियों को ठीक किया गया.WorkManager अब
Room
वर्शन1.1.1-rc1
का इस्तेमाल करता है.
एपीआई में किए गए बदलाव
WorkContinuation.getStatuses()
का सिंक्रोनस वर्शनgetStatusesSync()
जोड़ा गया.Worker
के पास यह अंतर करने की सुविधा होती है कि उपयोगकर्ता की ओर से शुरू की गई रद्द करने की प्रोसेस और कुछ समय के लिए ओएस के अनुरोध को रोकने के लिए किए गए अनुरोधों को अलग किया जा सकता है. अगर किसी तरह के स्टॉप का अनुरोध किया गया है, तोWorker.isStopped()
true
लौटाता है. जब काम साफ़ तौर पर रद्द किया गया हो, तोWorker.isCancelled()
true
नतीजे दिखाता है. b/79632247- एपीआई 28 पर JobParameters#getNetwork() के लिए सहायता जोड़ें. यह
Worker.getNetwork()
से सार्वजनिक है. Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)
को जोड़ा गया, ताकि आप लागू कर सकें किJobScheduler
याAlarmManager
को कितनी नौकरियां भेजी जा सकती हैं. यहWorkManager
को आपके सभी उपलब्धJobScheduler
स्लॉट लेने से रोकने में मदद करता है.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)
को जोड़ा गया, जोWorkManager
के इस्तेमाल के लिए सुरक्षितJobScheduler
जॉब आईडी की रेंज तय करने में मदद करता है. b/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
पैरामीटर है, जोWorker
को साफ़ तौर पर रद्द किए जाने पर,true
पर सेट किया गया है.
वर्शन 1.0.0-alpha02
24 मई, 2018
गड़बड़ियां ठीक की गईं
State.isFinished()
परNullPointerException
को ठीक किया गया. b/79550068- उस समस्या को ठीक कर दिया गया है जिसकी वजह से
Worker
s कोApplication.onCreate()
को फिर से शेड्यूल करना था. बी/79660657 - उस समस्या को ठीक कर दिया गया है जिसकी वजह से, ओएस की अनुमति से ज़्यादा काम शेड्यूल किया जा सकता है. b/79497378
Worker
से जुड़े वेक लॉक के क्लीनअप को बैकग्राउंड थ्रेड में ले जाया गया.- सभी रुके हुए काम पूरे होने पर,
AlarmManager
लागू करने की प्रोसेस सही तरीके से हट जाती है. - क्लीनअप एसक्यूएल क्वेरी को ठीक किया गया, जिससे अंग्रेज़ी के अलावा दूसरी भाषाओं पर असर पड़ा. बी/80065360
Data
मेंfloat
के लिए सहायता जोड़ी गई. b/79443878Data.Builder.putAll()
अबBuilder
का इंस्टेंस दिखाता है. b/79699162- दस्तावेज़ों में ज़्यादा JavaScript और समाधान. b/79691663
एपीआई में किए गए बदलाव
Worker
ऐप्लिकेशन रोके जाने पर प्रतिक्रिया दे सकते हैं.Worker.isStopped()
का इस्तेमाल करके, यह देखा जा सकता है किWorker
को रोका गया है या नहीं. कम जगह में क्लीनअप करने के लिए,Worker.onStopped()
का इस्तेमाल किया जा सकता है.Worker.getTags()
एपीआई,Worker
से जुड़े टैग काSet
दिखाता है.- उन एपीआई के लिए
javax.time.Duration
ओवरलोड जोड़े गए जो कुल समय औरTimeUnit
, दोनों का इस्तेमाल करते हैं. इस डिवाइस को@RequiresApi(26)
सुरक्षित रखता है. WorkManager
एक्सटेंशन,androidx.work.ktx
पैकेज सेandroidx.work
पैकेज में ले जाए गए हैं. पुराने एक्सटेंशन अब काम नहीं करते. आने वाले वर्शन में इन्हें हटा दिया जाएगा.Configuration.withExecutor()
के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय,Configuration.setExecutor()
का इस्तेमाल करें.
वर्शन 1.0.0-alpha01
8 मई, 2018
WorkManager आसानी से शेड्यूल करने और उन्हें लागू करने में मदद करता है
गारंटी के साथ, कंस्ट्रेंट की जानकारी वाले बैकग्राउंड में काम करने की सुविधा मिलती है. यह शुरुआती रिलीज़ 1.0.0-alpha01
है.