15 जनवरी, 2019
WorkManager
WorkManager 1.0.0-beta02
रिलीज़ किया गया. इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- एक किनारे वाला मामला तय किया गया जहां समय-समय पर हर अंतराल में एक से ज़्यादा बार काम हो सकता था 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
19 दिसंबर, 2018
WorkManager
WorkManager 1.0.0-beta01
रिलीज़ किया गया. इस रिलीज़ में, एपीआई में कोई बदलाव नहीं किया गया है; आने वाले समय में, WorkManager को उम्मीद है कि अगले वर्शन तक एपीआई एक जैसा काम करेगा. ऐसा तब तक होगा, जब तक कोई गंभीर समस्या न हो. इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- माता-पिता के पूरे हो चुके काम के बाद, रद्द किए गए बच्चे अब नहीं चलेंगे. b/120811767
- सही तरीके से शुरू की गई लॉगिंग क्लास (मुख्य रूप से टेस्ट के दौरान दिखती हैं).
18 दिसंबर, 2018
नेविगेशन
नेविगेशन 1.0.0-alpha09
रिलीज़ हो गया है. इस रिलीज़ में, एपीआई में हुए ऐसे बदलाव शामिल हैं जो नुकसान पहुंचा सकते हैं;
कृपया नीचे दिया गया नुकसान पहुंचाने वाले बदलाव सेक्शन देखें.
हमने ऐसे टूल का डेवलपमेंट जारी नहीं रखा है
android.arch.navigation:navigation-testing
आर्टफ़ैक्ट. हालांकि यह साबित हो चुका है
हमारा सुझाव है कि NavController
की इंटरनल टेस्टिंग के लिए, यह सुविधा काम की हो
टेस्टिंग की वैकल्पिक रणनीतियां, जैसे कि NavController
इंस्टेंस को मॉक करना
ताकि यह पुष्टि की जा सके कि सही navigate()
कॉल किए जा रहे हैं. यह
तरीके के बारे में यहां विस्तार से बताया गया है
AndroidDevSummit 2018 में सिंगल ऐक्टिविटी पर बात
इसके अलावा, हम खास तौर पर टेस्टिंग से जुड़े अतिरिक्त दस्तावेज़ों पर काम करेंगे
खोलें.
नई सुविधाएं
menuCategory="secondary"
वालेMenuItem
अब बैक पॉप नहीं होंगेNavigationUI
तरीकों के साथ इस्तेमाल करने पर स्टैक करें. b/120104424AppBarConfiguration
अब आपको फ़ॉलबैक सेट करने की सुविधा देता हैOnNavigateUpListener
इंस्टेंस जिसेnavController.navigateUp()
के लौटने पर कॉल किया जाएगाfalse
. b/79993862 b/120690961
नुकसान पहुंचाने वाले बदलाव
argType="reference"
के साथ<argument>
का इस्तेमाल करने पर नेविगेशन का इस्तेमाल नहीं किया जा सकता रॉ रिसॉर्स आईडी देने के बजाय, रेफ़रंस को पार्स करता है. b/111736515onNavDestinationSelected()
अब डिफ़ॉल्ट रूप से, आपके नेविगेशन ग्राफ़ की शुरुआती मंज़िल पर वापस पॉप-अप होता है, इससे वेsetup
तरीकों से एक जैसे हो जाते हैं. जोड़ें बैक स्टैक को पॉप-अप होने से बचाने के लिए, अपनेMenuItem
परmenuCategory="secondary"
. aosp/852869- जनरेट की गई
Args
क्लास केfromBundle()
तरीकों के लिए, अब वैल्यू शून्य नहीं होनी चाहिए शून्य वालेBundle
के बजायBundle
aosp/845616
गड़बड़ियां ठीक की गईं
- आर्ग्युमेंट को अब डीप लिंक से सही
argType
के तौर पर सही तरीके से पार्स किया गया है हमेशा स्ट्रिंग के रूप में b/110273284 - नेविगेशन अब अपने सार्वजनिक संसाधनों को सही तरीके से एक्सपोर्ट करता है b/121059552
- Safe Args अब Android Gradle प्लग इन 3.4 कैनरी 4 और इसके बाद वाले वर्शन के साथ काम करता है बी/119662045
12 दिसंबर, 2018
WorkManager
WorkManager 1.0.0-alpha13
रिलीज़ किया गया. इस रिलीज़ में एपीआई का एक छोटा सा बदलाव शामिल है. यह Kotlin के कुछ उपयोगकर्ताओं के लिए मददगार होगा.
एपीआई में किए गए बदलाव
androidx.work.Result
कोListenableWorker
की अंदरूनी क्लास में ले जाया गया है. यह Kotlin की टॉप-लेवलResult
क्लास के साथ कॉन्फ़्लिक्टिंग को रीफ़ैक्टर करने से रोकता है. यह एपीआई में किया गया बदलाव तोड़ने वाला है. b/120564418
तीसरे पक्ष के एपीआई में हुए बदलाव
androidx.work.Result
कोListenableWorker
की अंदरूनी क्लास में ले जाया गया है.
6 दिसंबर, 2018
पृष्ठांकन
पेजिंग 2.1.0-rc01
को 2.1.0-beta01
के किसी बदलाव के बिना रिलीज़ किया गया.
नेविगेशन
नेविगेशन 1.0.0-alpha08
रिलीज़ हो गया है. इस रिलीज़ में, एपीआई में हुए ऐसे बदलाव शामिल हैं जो नुकसान पहुंचा सकते हैं;
कृपया नीचे दिया गया नुकसान पहुंचाने वाले बदलाव सेक्शन देखें.
नई सुविधाएं
NavigationUI
तरीकों के साथ इस्तेमाल किए जाने पर, डेस्टिनेशन लेबल अब अपने-आप काम करेंगे अपनेandroid:label
में{argName}
इंस्टेंस को सही तर्क से बदलें b/80267266- नेविगेशन अब सपोर्ट लाइब्रेरी 28.0.0 पर निर्भर करता है b/120293333
नुकसान पहुंचाने वाले बदलाव
OnNavigatedListener
का नाम बदलकरOnDestinationChangedListener
कर दिया गया है b/118670572OnDestinationChangedListener
अबBundle
आर्ग्युमेंट को भी पास करता है aosp/837142app:clearTask
औरapp:launchDocument
एट्रिब्यूट और उनसे जुड़े एट्रिब्यूट तरीके हटा दिए गए हैं. अपने ग्राफ़ के रूट के साथapp:popUpTo
का इस्तेमाल करें, ताकि पिछली गतिविधियों से सभी डेस्टिनेशन हटाएं. b/119628354ActivityNavigator.Extras
अबBuilder
पैटर्न का इस्तेमाल करता है और इसकी क्षमता जोड़ता है कोईIntent.FLAG_ACTIVITY_
फ़्लैग सेट करें aosp/828140NavController.onHandleDeepLink
का नाम बदलकरhandleDeepLink
कर दिया गया है aosp/836063- ऐसी कई क्लास और तरीके जिनका इस्तेमाल सब-क्लास करने के लिए नहीं किया जाता है, जैसे कि
NavOptions
,NavInflater
,NavDeepLinkBuilder
, औरAppBarConfiguration
,final
बना दिए गए हैं aosp/835681 NavHostFragment.setGraph()
का इस्तेमाल न किया जा सकने वाला तरीका हटा दिया गया है aosp/835684NavigationUI.navigateUp(DrawerLayout, NavController)
का अब इस्तेमाल नहीं किया जा सकने वाला तरीका को निकाल दिया गया है. aosp/835684- फ़्रैगमेंट बनाने की सुविधा को
FragmentNavigator
में ले जाया गया. इससे, ये काम करना आसान हो गया हैFragmentFactory
में फ़्रैगमेंट बनाना. b/119054429 NavGraphNavigator
का कंस्ट्रक्टर अबContext
नहीं लेता है aosp/835340- NavigatorProvider अब
की जगह एक क्लास है.
NavigatorProvider
को, इन्होंने लौटायाgetNavigatorProvider()
ने इसकी सुविधाओं में बदलाव नहीं किया है. aosp/830660 NavDestination.navigate()
को हटा दिया गया है.Navigator
परnavigate()
को कॉल करें आज़माएं. aosp/830663Navigator
की ज़रूरी रीफ़ैक्टरिंग,OnNavigatorNavigatedListener
की ज़रूरत खत्म हो गई है और इसके बजाय,navigate
से वहNavDestination
वापस लौटेगा जिस पर नेविगेट किया गया था.Navigator
इंस्टेंस अबNavController
पर पॉप इवेंट नहीं भेज सकते. इन बातों पर ध्यान देंOnBackPressedCallback
का इस्तेमाल करके 'वापस जाएं' बटन दबना बंद करें औरnavController.popBackStack()
को कॉल करें. aosp/833716
गड़बड़ियां ठीक की गईं
- डेस्टिनेशन में
<navigation>
एलिमेंट होने पर,popUpTo
अब लगातार काम करता है b/116831650 - ऐसी कई गड़बड़ियां ठीक की गईं, जिनकी वजह से
IllegalArgumentException
आई नेस्ट किए गए ग्राफ़ का इस्तेमाल करते समय b/118713731 b/113611083 b/113346925 b/113305559 <activity>
डेस्टिनेशन के लिएdataPattern
एट्रिब्यूट की वैल्यू अब अपने-आप भर जाएगीtoString()
को कॉल करके गैर-स्ट्रिंग आर्ग्युमेंट से तर्क जोड़े जा सकते हैं b/120161365
सुरक्षित आर्ग
- Safe Args के साथ सीरियल वाले ऑब्जेक्ट काम कर सकते हैं. इनमें Enum वैल्यू भी शामिल हैं. Enum टाइप
क्लास के नाम के बिना एनम लिटरल का इस्तेमाल करके डिफ़ॉल्ट वैल्यू सेट कर सकता है
(उदाहरण के लिए,
app:defaultValue="READ"
) b/111316353 - Safe Args के साथ काम करने वाले सभी टाइप के अरे का इस्तेमाल किया जा सकता है b/111487504
- Safe Args अब रिसॉर्स डायरेक्ट्री के सब-फ़ोल्डर को अनदेखा करता है b/117893516
- जहां भी ज़रूरी हो, Safe Args में
@Override
एनोटेशन जोड़ा जाता है b/117145301
5 दिसंबर, 2018
WorkManager
WorkManager 1.0.0-alpha12
रिलीज़ किया गया. इस रिलीज़ में, नुकसान पहुंचाने वाले एपीआई में हुए कुछ बदलाव शामिल हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें. इस वर्शन को हमारे पहले बीटा वर्शन के तौर पर रिलीज़ किए जाने की संभावना है. 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
के मौजूदा तरीके समझने में ज़्यादा आसान हैं.
4 दिसंबर, 2018
रूम
2.1.0-alpha03
कमरे की बुकिंग रद्द कर दी गई है, जिसमें कोरूटीन की सुविधा उपलब्ध है. साथ ही, कई गड़बड़ियां ठीक की गई हैं.
एपीआई में किए गए बदलाव
@Fts3
/@Fts4
में FTStokenizer
अब Enum के बजाय स्ट्रिंग लेता है. इससे रूम, कस्टम टोकनाइज़र का इस्तेमाल कर पाता है.FtsOptions
में पहले से मौजूद टोकनाइज़र, अब भी स्ट्रिंग कॉन्सटेंट के तौर पर बताए गए हैं. b/119234881
नई सुविधाएं
- कोरोआउट: डीएओ तरीकों को अब सस्पेंड फ़ंक्शन के तौर पर इस्तेमाल किया जा सकता है. रूम में सस्पेंड फ़ंक्शन की सुविधा के लिए, एक नया आर्टफ़ैक्ट रिलीज़ किया गया है,
room-coroutines
. b/69474692 @Insert
,@Delete
या@Update
के साथ एनोटेट किए गए डीएओ तरीके, अब रिटर्न टाइप के तौर परListenableFuture
के साथ काम करते हैं. b/119418331
गड़बड़ियां ठीक की गईं
- वह गड़बड़ी ठीक की गई है जिसकी वजह से कमरा,
@Entity
कीignoredColumns
प्रॉपर्टी में, कॉलम वाला कंस्ट्रक्टर ढूंढने की कोशिश गलत तरीके से कर सकता था. b/119830714 - उस गड़बड़ी को ठीक किया गया है जिसकी वजह से रूम, डीएओ तरीके के पैरामीटर को जनरेट किए गए लागू करने के दौरान, फ़ाइनल के तौर पर मार्क नहीं करता. b/118015483
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से खास सिंबल वाली किसी क्वेरी पर गड़बड़ी की रिपोर्ट करने पर रूम का प्रोसेसर क्रैश हो जाता था. b/119520136
- उस गड़बड़ी को ठीक किया गया है जहां रूम,
IN
एक्सप्रेशन के आर्ग्युमेंट के तौर पर,Collection
लागू करने के अन्य तरीकों को अस्वीकार कर देता है. b/119884035 - उस गड़बड़ी को ठीक किया गया है जिसमें रूम से वापस आने वाले LiveData में कचरा इकट्ठा होता है और उसे हमेशा के लिए देखा जाता है. इसकी वजह से, नया डेटा नहीं निकलता. b/74477406
- लॉक के विवाद को कम करने के लिए,
RoomDatabase
के क्लोज़ लॉक को अपडेट किया गया. b/117900450
8 नवंबर, 2018
WorkManager
WorkManager 1.0.0-alpha11
रिलीज़ किया गया. इस रिलीज़ में कई बदलाव किए गए हैं, जो 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 नवंबर 2018
पृष्ठांकन
पेजिंग 2.1.0-beta01
को 2.1.0-alpha01
के किसी बदलाव के बिना रिलीज़ किया गया.
30 अक्टूबर, 2018
रूम
2.1.0-alpha02
कमरे की बुकिंग रद्द कर दी गई है, जिसमें कई गड़बड़ियां ठीक की गई हैं और एक नई सुविधा जोड़ी गई है.
नई सुविधाएं
@Relation
में@DatabaseView
का रेफ़रंस देने के लिए सहायता जोड़ी गई. b/117680932
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जहां Rx रिटर्न टाइप से सदस्यता लेने और डिस्पोज़ करने पर, रूम मुख्य थ्रेड में डिस्क I/O करेगा. बी/117201279
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से रूम, Kotlin इकाई की क्लास में फ़ील्ड के लिए सही टाइप का कन्वर्टर नहीं ढूंढ पाता था. बी/111404868
- उस गड़बड़ी को ठीक किया गया है जहां रूम,
DAO
इंटरफ़ेस को लागू करने के लिए गलत कोड जनरेट करेगा. इसमें Kotlin डिफ़ॉल्ट में ऐसा तरीका शामिल होगा जिसमें कोई आर्ग्युमेंट नहीं होता. b/117527454 - रूम का SQLite ग्रामर पार्सर अपडेट किया गया. इसमें परफ़ॉर्मेंस से जुड़ी ऐसी समस्या ठीक की गई है जिसकी वजह से बिल्ड में ज़्यादा समय लग सकता है. b/117401230
29 अक्टूबर, 2018
नेविगेशन
गड़बड़ी ठीक करने और एपीआई में बदलाव करने के बाद, नेविगेशन 1.0.0-alpha07
को रिलीज़ किया गया.
नई सुविधाएं
- नया AppBarConfiguration क्लास की मदद से यह तय किया जा सकता है कि किन डेस्टिनेशन को टॉप-लेवल माना जाए गंतव्य. अपडेट किए गए दस्तावेज़ देखें देखें. b/117333663
- अब आप अपने ग्राफ़ के शुरुआती डेस्टिनेशन पर आर्ग्युमेंट पास कर सकते हैं b/110300470
- डीप लिंक अब पीरियड, हाइफ़न, और प्लस साइन वाली कस्टम स्कीम के साथ काम करते हैं. b/112806402
नुकसान पहुंचाने वाले बदलाव
navigation-testing-ktx
मॉड्यूल को फ़ोल्ड किया गया हैnavigation-testing artifact
को अब पब्लिश नहीं किया जाएगा.navigation-testing
आर्टफ़ैक्ट, अब Kotlin स्टैंडर्ड पर निर्भर है लाइब्रेरी. एपीआई को बदल दिया गया है, ताकि वह Kotlin के साथ बेहतर तरीके से काम कर सके पर बताई हैं, लेकिन Java में लिखे गए टेस्ट के लिए इसका इस्तेमाल जारी रखा जा सकता है.- मेटाडेटा मेनिफ़ेस्ट में रजिस्टर किए गए नेविगेशन ग्राफ़ अब काम नहीं करते. b/118355937
- <activity> के साथ अब कार्रवाइयां अटैच नहीं की जा सकतीं गंतव्य. aosp/785539
गड़बड़ियां ठीक की गईं
- डीप लिंक अब क्वेरी पैरामीटर को सही तरीके से पार्स करते हैं. बी/110057514
- ऐक्टिविटी डेस्टिनेशन अब सभी ऐनिमेशन को सही तरीके से लागू करते हैं और उससे बाहर निकलते हैं. b/117145284
- कस्टम का इस्तेमाल करते समय कॉन्फ़िगरेशन में बदलाव होने के बाद होने वाले क्रैश को ठीक किया गया नेविगेटर. बी/110763345
सुरक्षित आर्ग
- सुरक्षित आर्ग की अब 'Android Gradle प्लग इन 3.2.1' पर तय निर्भर करता है. b/113167627
- इनर क्लास के लिए अब निर्देश जनरेट किए जा सकते हैं. बी/117407555
- <include> के लिए निर्देश जनरेट करने से जुड़ी समस्या ठीक की गई ग्राफ़. b/116542123
12 अक्टूबर, 2018
पृष्ठांकन
पेजिंग 2.1.0-alpha01
को दो प्रमुख सुविधाओं के साथ रिलीज़ किया गया है - पेज ड्रॉप करना, और हर आर्टफ़ैक्ट के लिए KTX एक्सटेंशन लाइब्रेरी - साथ ही कई अन्य API बदलाव और बग समाधान.
एपीआई में किए गए बदलाव
- मेमोरी में लोड किए गए आइटम की संख्या को सीमित करने के लिए,
PagedList.Config.Builder.setMaxSize()
को जोड़ा गया. androidx.paging.Config()
कोPagedList.Config.Builder
के लिए Kotlin विकल्प के तौर पर जोड़ा गयाandroidx.paging.PagedList()
कोPagedList.Builder
के लिए Kotlin विकल्प के तौर पर जोड़ा गयाDataSourceFactory.toLiveData()
कोLivePagedListBuilder
के लिए Kotlin विकल्प के तौर पर जोड़ा गयाRxPagedListBuilder
के लिए, Kotlin के विकल्पों के तौर परDataSourceFactory.toObservable()
औरtoFlowable()
को जोड़ा गया- PagedList को बदले जाने पर, उसे सुनने के लिए
AsyncPagedListDiffer.addPagedListListener()
को जोड़ा गया. b/111698609 - जोड़ा गया
PagedListAdapter.onCurrentListChanged()
वैरिएंट, जो पुराने और नई सूची में पास हो गया है. हालांकि, पिछला वैरिएंट अब काम नहीं करता. - ऐसे
PagedListAdapter/AsyncPagedListDiffer.submitList()
वैरिएंट जोड़े गए जो अलग-अलग होने के बाद, अतिरिक्त कॉलबैक लेता है, जो पेज वाली सूची के दिखने पर/जब पेज पर जाता है, तो ट्रिगर होता है. यह आपको PagedList की अदला-बदली करने के तरीके को यूज़र इंटरफ़ेस (यूआई) के अन्य अपडेट के साथ सिंक करने की सुविधा देता है. b/73781068 - आपको यह बताने के लिए
PagedList.getLoadedCount()
को जोड़ा गया है कि मेमोरी में कितने आइटम हैं. ध्यान दें कि प्लेसहोल्डर बंद होने पर, रिटर्न वैल्यू हमेशा.size()
के बराबर होती है.
गड़बड़ियां ठीक की गईं
- सूचियों का फिर से इस्तेमाल किए जाने पर फ़र्क़ दिखाते समय, रेस की कंडिशन ठीक की गई b/111591017
- इंडेक्स के अमान्य होने पर,
PagedList.loadAround()
अबIndexOutOfBoundsException
दिखाता है. पहले, यह किसी दूसरे अपवाद की वजह से क्रैश हो सकता था. - ऐसे मामले को ठीक किया गया है जिसमें बहुत ही छोटे शुरुआती लोड साइज़ के साथ-साथ, कोई बदलाव न किया गया डेटा लोड न होने की वजह से b/113122599 अब और लोड न हो
11 अक्टूबर, 2018
WorkManager
WorkManager 1.0.0-alpha10
को, डेवलपर के कंट्रोल किए गए एसिंक्रोनस काम के लिए रिलीज़ किया गया है. इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें.
हमारा अनुमान है कि 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-alpha02
रिलीज़ हो गई है.
एपीआई में किए गए बदलाव
- डेवलपर अब
ListenableFuture
को आसानी से लागू करने के लिए,ResolvableFuture
औरAbstractResolvableFuture
का इस्तेमाल कर सकते हैं.
8 अक्टूबर, 2018
रूम
2.1.0-alpha01
कमरे की बुकिंग रद्द हो गई है.
नई सुविधाएं
- एफ़टीएस: रूम अब FTS3 या FTS4 टेबल को मैप करने वाली इकाइयों के साथ काम करता है.
@Entity
के साथ एनोटेट की गई क्लास के साथ अब@Fts3
या@Fts4
के साथ जानकारी भी जोड़ी जा सकती है, ताकि मैपिंग पूरे टेक्स्ट वाली खोज टेबल के साथ क्लास का एलान किया जा सके. एनोटेशन के तरीकों के ज़रिए, एफ़टीएस के विकल्प और मनमुताबिक बनाने के विकल्प उपलब्ध हैं. b/62356416 - व्यू: रूम अब सेव की गई क्वेरी के तौर पर क्लास का एलान करने की सुविधा देता है. इसे @DatabaseView एनोटेशन का इस्तेमाल करके, व्यू भी कहा जाता है. b/67033276
- ऑटो वैल्यू: रूम अब AutoValue एनोटेट की गई क्लास को इकाइयों और POJO के तौर पर एलान करने की सुविधा देता है. रूम के एनोटेशन
@PrimaryKey
,@ColumnInfo
,@Embedded
, और@Relation
को अब ऑटो वैल्यू के तौर पर एनोटेट किए गए क्लास के ऐब्सट्रैक्ट तरीकों में दिखाया जा सकता है. ध्यान दें कि इन एनोटेशन के साथ@CopyAnnotations
भी होना चाहिए, ताकि रूम उन्हें सही तरीके से समझ सके. b/62408420 - अतिरिक्त Rx रिटर्न टाइप के लिए सहायता:
@Insert
,@Delete
या@Update
के साथ एनोटेट किए गए डीएओ तरीके अब Rx रिटर्न टाइपCompletable
,Single<T>
, औरMaybe<T>
के साथ काम करते हैं. b/63317956 @Relation
के साथ नहीं बदले जा सकने वाले टाइप: रूम को सेट करने लायक बनाने के लिए, पहले@Relation
एनोटेट किए गए फ़ील्ड की ज़रूरत होती थी. हालांकि, अब ये कंस्ट्रक्टर पैरामीटर हो सकते हैं.enableMultiInstanceInvalidation
: एक ही डेटाबेस फ़ाइल का इस्तेमाल करके, RoomDatabase के कई इंस्टेंस में अमान्य होने को चालू करने के लिए,RoomDatabase.Builder
में एक नया एपीआई है. एक से ज़्यादा इंस्टेंस अमान्य करने का यह तरीका, कई प्रोसेस के साथ भी काम करता है. b/62334005fallbackToDestructiveMigrationOnDowngrade
: यहRoomDatabase.Builder
में एक नया एपीआई है. डाउनग्रेड किए जाने पर, डेटाबेस अपने-आप फिर से बनता है. b/110416954ignoredColumns
: यह@Entity
एनोटेशन में एक नया एपीआई है. इसका इस्तेमाल करके, अनदेखा किए गए फ़ील्ड को नाम से लिस्ट किया जा सकता है. किसी इकाई पर इनहेरिट किए गए फ़ील्ड को अनदेखा करने के लिए इस्तेमाल किया जाता है. बी/63522075
एपीआई / व्यवहार में बदलाव
RoomDatabase
मेंmCallback
औरmDatabase
अब@Deprecated
हैं. इन्हें रूम के अगले मेजर वर्शन से हटा दिया जाएगा. b/76109329
गड़बड़ियां ठीक की गईं
- दो समस्याओं को ठीक किया गया है, जिनमें गड़बड़ी वाले डेटाबेस से रूम ठीक से रिकवर नहीं हो पाता था या शुरू करने के दौरान गलत माइग्रेशन हो सकता था. b/111504749 और b/111519144
- रूम अब डेटा क्लास में Kotlin के प्राइमरी कंस्ट्रक्टर का सही तरीके से इस्तेमाल करेगा, ताकि फ़ील्ड को
vars
के तौर पर बताने की ज़रूरत न पड़े. बी/105769985
1 अक्टूबर, 2018
2.0.0
कमरे की बुकिंग रद्द कर दी गई है. इसमें 2.0.0-rc01
ने कोई बदलाव नहीं किया है.
पेजिंग 2.0.0
को एक बग समाधान के साथ रिलीज़ किया गया है.
पृष्ठांकन
गड़बड़ियां ठीक की गईं
PositionalDataSource
और प्लेसहोल्डर b/114635383 का इस्तेमाल करके बहुत तेज़ी से स्क्रोल करने पर होने वाले क्रैश को ठीक किया गया.
21 सितंबर, 2018
लाइफ़साइकल 2.0.0
को ViewModel में 2.0.0-rc01
से एक गड़बड़ी ठीक करके रिलीज़ किया गया है.
लाइफ़साइकल
गड़बड़ियां ठीक की गईं
- ViewModel ProGuard नियम को ठीक किया गया है, जिसने कंस्ट्रक्टर को गलत तरीके से हटा दिया था b/112230489
20 सितंबर, 2018
नेविगेशन
गड़बड़ी ठीक करने और एपीआई में बदलाव करने के बाद, नेविगेशन 1.0.0-alpha06
को रिलीज़ किया गया.
नई सुविधाएं
- फ़्रैगमेंट और गतिविधि डेस्टिनेशन के लिए, शेयर किए गए एलिमेंट के ट्रांज़िशन अब b/79665225 पर काम करते हैं. ज़्यादा जानकारी के लिए, नेविगेशन आर्किटेक्चर कॉम्पोनेंट के साथ नेविगेशन लागू करना लेख पढ़ें
NavigationView
में किसी आइटम को चुनने पर, सबसे नीचे वाली शीट b/112158843 बंद हो जाएगी
एपीआई में किए गए बदलाव
- ब्रेकिंग बदलाव: नेविगेटर
navigate()
वाले तरीके में अबNavigator.Extras
पैरामीटर होता है. - NavController का
getGraph()
तरीकाNonNull
b/112243286 हो गया है
गड़बड़ियां ठीक की गईं
- अगर
NavigationUI.setupWithNavController()
का इस्तेमाल अलग-अलग मंज़िलों से मिले व्यू के साथ किया जाता है, तो उनका व्यू लीक नहीं होता b/111961977 - नेविगेटर
onSaveState()
को अब सिर्फ़ एक बार b/112627079 पर कॉल किया जाता है
सुरक्षित आर्ग
- नेविगेशन डेस्टिनेशन दिशा-निर्देश क्लास के मौजूद होने पर उनके अभिभावक की दिशा-निर्देश क्लास को बढ़ाया b/79871405
- निर्देशों और Args क्लास में अब
toString()
को लागू करने के लिए, एक मददगार b/111843389 उपलब्ध है
19 सितंबर, 2018
WorkManager
WorkManager 1.0.0-alpha09
को रिलीज़ किया गया है. इसमें गड़बड़ियां ठीक की गई हैं, इंफ़्रास्ट्रक्चर से जुड़े अपडेट किए गए हैं, और एपीआई में बदलाव किए गए हैं.
आम समस्या
अगर आपको इस समस्या का सामना करना पड़ता है: "अगर ओएस इंडिपेंडेंट पाथ '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
कंस्ट्रक्टर काम नहीं करते हैं. कृपया जल्द से जल्द नए कंस्ट्रक्टर पर माइग्रेट करें. आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.
27 अगस्त, 2018
WorkManager
WorkManager 1.0.0-alpha08
रिलीज़ हो गया है. अब उसमें गड़बड़ियां ठीक कर दी गई हैं.
गड़बड़ियां ठीक की गईं
- WorkManager कॉम्पोनेंट को सीधे तौर पर बूट करने की जानकारी के तौर पर लेबल किया गया है. इससे उन्हें डायरेक्ट बूट के दौरान चालू नहीं किया जा सकता. आने वाले समय में, हम WorkManager का ऐसा वर्शन उपलब्ध कराएंगे जिसमें सीधे तौर पर बूट करने की जानकारी हो. बी/112665532
- उस समस्या को ठीक कर दिया गया है, जिसकी दोबारा कोशिश करने पर वह काम नहीं कर रहा था. बी/112604021
- बार-बार लागू न होने वाले काम को ठीक किया गया. यह ऊपर बताई गई समस्या से जुड़ा है. बी/112859683
- जब ऐप्लिकेशन की प्रोसेस पहले से चल रही हो, तो बैकऑफ़ नीतियां लागू की जाती हैं.
Data
में मौजूद अपवाद वाले मैसेज को ठीक कर दिया गया है, ताकि यह पता चल सके कि यह फ़ाइल 10 केबी की है.JobScheduler
की प्रोसेसिंग पूरी होने में लगने वाले कुछ समय के लिए,Configuration.setMaxSchedulerLimit(int)
की ज़्यादा से ज़्यादा वैल्यू को घटाकर 50 किया गया. b/112817355
16 अगस्त, 2018
WorkManager
WorkManager 1.0.0-alpha07
को रिलीज़ किया गया है. इसमें, गड़बड़ियां ठीक की गई हैं और एपीआई में छोटे-मोटे बदलाव किए गए हैं.
गड़बड़ियां ठीक की गईं
- नेगेटिव सीमाओं वाली संभावित 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?>)
जोड़े गए.
10 अगस्त, 2018
नेविगेशन
गड़बड़ी ठीक करने के बाद नेविगेशन 1.0.0-alpha05
रिलीज़ कर दिया गया है.
गड़बड़ियां ठीक की गईं
- गलत बैकस्टैक व्यवहार पैदा करने वाली गड़बड़ी को ठीक करें. बी/111907708
- जनरेट की गई Args क्लास में से
equals()
की गड़बड़ी को ठीक किया गया. b/111450897 - Safe Args में बिल्ड फ़ेल हो जाने को ठीक करें. b/109409713
- रिसॉर्स आइडेंटिफ़ायर से जावा नाम में बदलने की समस्या को ठीक करना b/111602491
- Safe Args प्लगिन में शून्य की क्षमता के बारे में गड़बड़ी के मैसेज को ठीक किया गया.
- उन एनोटेशन को जोड़ें जो अमान्य हैं.
6 अगस्त, 2018
लाइफ़साइकल, रूम, और पेजिंग रिलीज़ वर्शन 2.0.0-rc01
के AndroidX वर्शन. सभी आर्टफ़ैक्ट में 2.0.0-beta01
से कोई बदलाव नहीं किया गया है.
1 अगस्त 2018
WorkManager
WorkManager 1.0.0-alpha06
रिलीज़ हो गया है. अब उसमें गड़बड़ियां ठीक कर दी गई हैं.
गड़बड़ियां ठीक की गईं
- काम शेड्यूल करते समय, डेटाबेस को लॉक होने से बचाएं. b/111801342
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से
PeriodicWork
, बैटरी बचाएं (डोज़) मोड में होने पर शेड्यूल पर नहीं चलता. b/111469837 - उन कंस्ट्रेंट को ट्रैक करते समय रेस कंडिशन को ठीक करें जिनकी वजह से
WorkManager
क्रैश होता है. googlecodelabs/android-workmanager/issues/56 WorkRequest.Builder#build()
का इस्तेमाल करते समय यूनीकWorkRequest
बनाएं. b/111408337RescheduleReceiver
का इस्तेमाल सिर्फ़ तब चालू करें, जबWorkRequest
s को इसकी ज़रूरत हो. b/111765853
24 जुलाई, 2018
WorkManager
WorkManager 1.0.0-alpha05
को रिलीज़ किया गया. इसमें ज़रूरी गड़बड़ियां ठीक की गई हैं और बदलावों को लॉग किया गया है.
एपीआई में किए गए बदलाव
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[])
शामिल हैं.
19 जुलाई, 2018
नेविगेशन
नेविगेशन 1.0.0-alpha04
और इससे जुड़े Safe Args Gradle प्लग इन में कई एपीआई बदलाव, काम करने के तरीके में बदलाव, और गड़बड़ियां ठीक की गई हैं.
एपीआई / व्यवहार में बदलाव
- NavHostफ़्रैगमेंट, मौजूदा फ़्रैगमेंट को हमेशा मुख्य नेविगेशन फ़्रैगमेंट के तौर पर सेट करेगा. इससे यह पक्का किया जा सकेगा कि चाइल्ड फ़्रैगमेंट मैनेजर, बाहरी NavController के पॉप-अप होने से पहले पॉप-अप होंगे b/111345778
सुरक्षित आर्ग
- ब्रेकिंग बदलाव:
app:type
कोapp:argType
में बदल दिया गया है, ताकि ConstraintLayout 2.0.0-alpha1 b/111110548 जैसी दूसरी लाइब्रेरी में कोई समस्या न आए - Safe Args से मिले गड़बड़ी के मैसेज पर अब क्लिक किया जा सकता है b/111534438
- Args क्लास अब पुष्टि करती है कि
NonNull
एट्रिब्यूट असल में शून्य नहीं हैं b/111451769 - Navguidelines और Args जनरेट की गई क्लास b/111455455 b/111455456 में,
NonNull
अतिरिक्त एनोटेशन जोड़े गए हैं
गड़बड़ियां ठीक की गईं
- फ़्रैगमेंट डेस्टिनेशन b/111515685 से डीप लिंक करने के बाद, सिस्टम के 'वापस जाएं' बटन से जुड़ी समस्या को ठीक किया गया
12 जुलाई, 2018
नेविगेशन
नेविगेशन 1.0.0-alpha03
और इससे जुड़े Safe Args Gradle प्लग इन में कई एपीआई बदलाव, काम करने के तरीके में बदलाव, और गड़बड़ियां ठीक की गई हैं.
एपीआई / व्यवहार में बदलाव
- टूलबार के लिए NavigationUI.setupWithNavController से जोड़ने का तरीका b/109868820 जोड़ा गया है
- ClosesingToolbarLayout के लिए एक NavigationUI.setupWithNavController से जुड़ा तरीका जोड़ा गया b/110887183
- अगर बैक स्टैक खाली है या उससे जुड़ा डेस्टिनेशन आईडी, बैक स्टैक b/110893637 में मौजूद नहीं है, तो filebackStack() बार में गलत नतीजे देता है
- फ़्रैगमेंट मैनेजर की स्थिति सेव होने के बाद, फ़्रैगमेंट Navigator, नेविगेशन कार्रवाइयों को अनदेखा कर देता है. साथ ही, "onSaveInstanceState" के बाद यह कार्रवाई नहीं की जा सकती b/110987825
सुरक्षित आर्ग
- ब्रेकिंग बदलाव: NavNav के तरीकों के नामों में, बिना अक्षर और अंक वाले ऐक्शन और आर्ग्युमेंट के नामों को ऊंट के केस से बदल दिया जाएगा
- उदाहरण के लिए,
DemoController.index
,setDemoControllerIndex
b/79995048 हो जाएगा - उदाहरण के लिए,
action_show_settings
,actionShowSettings
b/79642240 हो जाएगा
- उदाहरण के लिए,
- ब्रेकिंग बदलाव: आर्ग्युमेंट को डिफ़ॉल्ट रूप से 'शून्य' नहीं माना जाता है. पार्स किए जा सकने वाले आर्ग्युमेंट और स्ट्रिंग में शून्य वैल्यू को अनुमति देने के लिए,
app:nullable="true"
b/79642307 जोड़ें app:type="long"
का इस्तेमाल, defaultValues के तौर पर “123L” b/79563966 के तौर पर किया जा सकता हैapp:type
के लिए पूरी तरह क्वालिफ़ाइड क्लास नाम का इस्तेमाल करके, पार्स किए जा सकने वाले आर्ग्युमेंट अब काम करते हैं. डिफ़ॉल्ट तौर पर, सिर्फ़"@null"
b/79563966 वैल्यू ही इस्तेमाल की जा सकती है- Args क्लास अब
equals()
औरhashCode()
b/79642246 को लागू करती हैं - Safe Args प्लग इन को अब लाइब्रेरी प्रोजेक्ट b/80036553 पर लागू किया जा सकता है
- Safe Args प्लग इन को अब फ़ीचर प्रोजेक्ट b/110011752 पर लागू किया जा सकता है
गड़बड़ियां ठीक की गईं
- फ़्रैगमेंट लाइफ़साइकल के तरीकों के दौरान नेविगेट करते समय आने वाली समस्याओं को ठीक किया गया b/109916080
- नेस्ट किए गए ग्राफ़ में कई बार नेविगेट करने पर आने वाली समस्याओं को ठीक किया गया b/110178671
- b/109909461 ग्राफ़ में पहले डेस्टिनेशन के साथ
setPopUpTo
का इस्तेमाल करते समय आने वाली समस्याओं को ठीक किया गया - उस समस्या को ठीक कर दिया गया है जिसकी वजह से सभी
app:defaultValue
वैल्यू, स्ट्रिंग b/110710788 के तौर पर पास हो रही थीं - Android Gradle प्लग इन 3.2 Beta 01 के साथ बंडल किए गए aapt2 ने अब नेविगेशन एक्सएमएल फ़ाइलों में हर
android:name
एट्रिब्यूट के लिए Keep के नियम जोड़े हैं b/79874119 - डिफ़ॉल्ट फ़्रैगमेंट Navigator b/110900142 को बदलते समय मेमोरी लीक होने की समस्या ठीक की गई
2 जुलाई, 2018
लाइफ़साइकल, रूम, और पेजिंग रिलीज़ वर्शन 2.0.0-beta01
के AndroidX वर्शन.
लाइफ़साइकल
गड़बड़ियां ठीक की गईं
- सिर्फ़ लागू करने के तरीके को बनाए रखने के लिए, LifecycleObserver ProGuard नियम को बनाया गया है, न कि सबइंटरफ़ेस b/71389427
- अस्पष्ट बनाने और छोटा करने की अनुमति देने के लिए, ViewModel प्रोगार्ड नियम तय किए गए हैं
रूम
एपीआई / व्यवहार में बदलाव
- क्वेरी कहां चलाई जाएं, इसे पसंद के मुताबिक बनाने के लिए
RoomDatabase.Builder.setQueryExecutor()
को जोड़ा गया - RxJava2
Observable
की सुविधा जोड़ी गई - जनरेट किए गए डीएओ और डेटाबेस को अब लागू किया जा सकता है
गड़बड़ियां ठीक की गईं
- "फ़ील्ड के लिए गेटर नहीं मिल सका" में क्लास/फ़ील्ड का नाम बताएं गड़बड़ी b/73334503
- रूम b/110197391 के पुराने वर्शन के साथ, RoomOpenHelper की पीछे की ओर काम करने की सुविधा को ठीक किया गया है
पृष्ठांकन
गड़बड़ियां ठीक की गईं
- कुछ प्रीपेंड मामलों में गायब होने वाली ठीक की गई सामग्री (प्लेसहोल्डर बंद किया गया, पोज़िशनलडेटासोर्स) b/80149146
- (पहले से
1.0.1
में रिलीज़ हो चुका है) क्रैश की ऐसी समस्याएं ठीक की गई हैं जिनमेंPagedListAdapter
औरAsyncPagedListDiffer
, ले जाने के इवेंट का सिग्नल नहीं दे पाएंगे. b/110711937
26 जून, 2018
पृष्ठांकन
पेज 1.0.1
को runtime
में एक गड़बड़ी ठीक करके रिलीज़ किया गया है. ऐप्लिकेशन को क्रैश या फ़्रीज़ होने से बचाने के लिए, हमारा सुझाव है कि 1.0.1
का इस्तेमाल करें. पेजिंग RxJava2 1.0.1
भी रिलीज़ किया गया है और यह 1.0.0-rc1
की तरह है.
गड़बड़ियां ठीक की गईं
- उन क्रैश को ठीक किया गया है जहां
PagedListAdapter
औरAsyncPagedListDiffer
, ऐप्लिकेशन को दूसरी जगह ले जाने के इवेंट का सिग्नल नहीं दे पाते. b/110711937
WorkManager
WorkManager 1.0.0-alpha04
रिलीज़ किया गया.
गड़बड़ियां ठीक की गईं
AlarmManager
पर आधारित लागू करने के तरीके का इस्तेमाल करते समय,PeriodicWorkRequest
अब सही तरीके से फिर से शेड्यूल किए जाते हैं.फ़ोर्स स्टॉप या फिर से चालू होने के बाद, सभी कर्मियों को फिर से शेड्यूल करते समय संभावित ANR की गड़बड़ी ठीक की गई. b/110507716
अलग-अलग WorkManager API में, अमान्य वैल्यू वाले एनोटेशन जोड़े गए. b/110344065
वर्कर एक्ज़ीक्यूशन के दौरान, उन अपवादों को लॉग करें जिन्हें पहचाना नहीं जा सका. b/109900862
अगर आपको WorkManager के पुराने वर्शन पर रोल बैक करना है, तो इस डेटा को नुकसान पहुंचाने वाले डेटाबेस के माइग्रेशन की अनुमति दी जाती है. b/74633270
डुप्लीकेट इंप्लिसिट टैग बनाने पर होने वाले माइग्रेशन क्रैश को ठीक किया गया. ऐसा बहुत कम होता है, जो तब होती है, जब आपने खुद इस इंप्लिसिट टैग फ़ॉर्मैट का इस्तेमाल किया हो.
19 जून, 2018
रूम
1.1.1
कमरे की बुकिंग रद्द हो गई है. यह रिलीज़, रूम 1.1.1-rc1
के जैसा है.
WorkManager
WorkManager 1.0.0-alpha03
रिलीज़ किया गया.
गड़बड़ियां ठीक की गईं
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
पर सेट किया गया है.
7 जून, 2018
नेविगेशन 1.0.0-alpha02
रिलीज़ हो गया है.
नेविगेशन
व्यवहार में बदलाव
FragmentNavigator
अबsetReorderingAllowed(true)
का इस्तेमाल करता है. बी/109826220नेविगेशन में अब यूआरएलडीकोड की मदद से, डीप लिंक के यूआरएल से पार्स किए गए आर्ग्युमेंट को डिकोड करें. b/79982454
गड़बड़ियां ठीक की गईं
फ़्रैगमेंट लाइफ़साइकल के तरीकों से नेविगेट करने का अनुरोध करते समय,
IllegalStateException
को ठीक किया गया. b/79632233ऐनिमेशन का इस्तेमाल करते समय फ़्लिकर (रोशनी कम-ज़्यादा होना) की समस्या को ठीक करने के लिए, नेविगेशन अब सपोर्ट लाइब्रेरी 27.1.1 पर निर्भर करता है. b/80160903
defaultNavHost="true" का इस्तेमाल करने पर
IllegalArgumentException
ठीक किया गया चाइल्ड फ़्रैगमेंट के तौर पर सेव होता है. b/79656847NavDeepLinkBuilder के इस्तेमाल के दौरान,
StackOverflowError
को ठीक किया गया. b/109653065नेस्ट किए गए ग्राफ़ पर वापस जाते समय,
IllegalArgumentException
को ठीक किया गया. b/80453447launchSingleTop
का इस्तेमाल करते समय ओवरलैप होने वाले फ़्रैगमेंट से जुड़ी समस्या ठीक की गई. b/79407969नेविगेशन, अब नेस्ट किए गए ग्राफ़ के लिए सही सिंथेटिक बैक स्टैक बनाता है. b/79734195
नेविगेशन यूज़र इंटरफ़ेस (यूआई) अब नेस्ट किए गए ग्राफ़ का
MenuItem
के तौर पर इस्तेमाल करने पर, सही आइटम को हाइलाइट करेगा. बी/109675998
एपीआई में किए गए बदलाव
NavOptions
में, कार्रवाइयों और उससे जुड़े एपीआई के लिएclearTask
एट्रिब्यूट को हटा दिया गया है. b/80338878NavOptions
में, कार्रवाइयों और उससे जुड़े एपीआई के लिएlaunchDocument
एट्रिब्यूट को हटा दिया गया है. b/109806636
24 मई, 2018
WorkManager 1.0.0-alpha02
रिलीज़ किया गया.
WorkManager
गड़बड़ियां ठीक की गईं
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()
का इस्तेमाल करें.
16 मई, 2018
पेजिंग RxJava2 1.0.0-rc1
और रूम 1.1.1-rc1
रिलीज़ हो गए हैं. हमने काफ़ी
अगर माइग्रेशन का इस्तेमाल किया जा रहा है, तो 1.1.0
के बजाय रूम 1.1.1-rc1
का इस्तेमाल करने का सुझाव दिया जाता है.
रूम
गड़बड़ी को ठीक किया गया है, जहां माइग्रेशन शुरू करने के बाद रूम सही तरीके से काम नहीं करेगा b/79362399
पृष्ठांकन
पेजिंग rxjava2
को अब रिलीज़ कैंडिडेट की तरफ़ ले जाया जा रहा है. इसमें पहले से कोई बदलाव नहीं किया गया है
ऐल्फ़ा वर्शन
8 मई, 2018
पेजिंग 1.0, नेविगेशन और WorkManager ऐल्फ़ा, रूम 1.1, AndroidX
पेजिंग 1.0.0
और रूम 1.1.0
रिलीज़ किए गए
दो नए आर्किटेक्चर घटकों के लिए अल्फ़ा के साथ - नेविगेशन और WorkManager.
हाल ही में रिलीज़ हुए उम्मीदवारों के बाद से पेजिंग और रूम में कोई बदलाव नहीं किया गया है.
नई लाइब्रेरी: नेविगेशन
नेविगेशन विकल्प से, इन-ऐप्लिकेशन ऐप्लिकेशन बनाने के लिए फ़्रेमवर्क मिलता है
नेविगेशन. यह शुरुआती रिलीज़ 1.0.0-alpha01
है.
नई लाइब्रेरी: WorkManager
WorkManager आसानी से शेड्यूल करने और उन्हें लागू करने में मदद करता है
गारंटी के साथ, कंस्ट्रेंट की जानकारी वाले बैकग्राउंड में काम करने की सुविधा मिलती है. यह शुरुआती रिलीज़ है
1.0.0-alpha01
.
AndroidX
आर्किटेक्चर के कॉम्पोनेंट, AndroidX का हिस्सा बनने वाले हैं. इनमें अपडेट भी शामिल हैं
पैकेज के नाम, आर्टफ़ैक्ट के नाम, और अन्य AndroidX लाइब्रेरी पर डिपेंडेंसी.
इन्हें अन्य वर्शन के साथ इस्तेमाल करने के लिए, वर्शन 2.0.0-alpha1
के तहत रिलीज़ किया गया है
AndroidX लाइब्रेरी पर टैप करें.
Kotlin एक्सटेंशन
ViewModel, ReactiveStreams, और Sqlite (पहले रूम का 'डेटाबेस' कॉम्पोनेंट) ये सभी कॉम्पोनेंट थे AndroidX के ऐल्फ़ा रिलीज़ के हिस्से के तौर पर, Kotlin एक्सटेंशन लाइब्रेरी को जोड़ा जा सकता है. तय सीमा में इसके अलावा, नेविगेशन और WorkManager में -ktx मॉड्यूल शामिल हैं. इनमें से सभी एक्सटेंशन मॉड्यूल कॉम्पोनेंट को जोड़ने में देखे जा सकते हैं.
2 मई, 2018
- कमरा 1.1.0 रिलीज़ उम्मीदवार
1.1.0-rc1
कमरे की बुकिंग रद्द हो गई है.
गड़बड़ियां ठीक की गईं
- रूम अब Kotlin
1.2.40
के साथ काम करता है. b/78328708
19 अप्रैल, 2018
पेजिंग रिलीज़ कैंडिडेट
पेजिंग 1.0.0-rc1
और रूम 1.1.0-beta3
की बुकिंग रद्द कर दी गई है.
पृष्ठांकन
हमारे पास कोई भी ज़्यादा ज्ञात समस्याएं या नई सुविधाएं नहीं हैं
पेजिंग 1.0.0
रिलीज़. 1.0.0-rc1
का इस्तेमाल करने के लिए, कृपया अपने प्रोजेक्ट अपग्रेड करें और
इसे टेस्ट करने में हमारी मदद करें, ताकि हम एक ठोस 1.0.0
शिप कर सकें.
इस रिलीज़ में कोई बदलाव नहीं किया गया है. यह 1.0.0-beta1
के जैसा है.
रूम
गड़बड़ियां ठीक की गईं
- जब Kotlin POJO किसी ऐसी रिलेशन इकाई का रेफ़रंस देता है जो कंपाइलेशन गड़बड़ी की तरह काम करती है Java में तय किया गया था b/78199923
5 अप्रैल, 2018
रूम 1.1.0-beta2
, पेजिंग 1.0.0-beta1
, और पेजिंग RxJava 1.0.0-alpha1
की बुकिंग रद्द कर दी गई है.
रिलीज़ कैंडिडेट के लॉन्च से पहले कुछ समय के लिए पेजिंग बीटा वर्शन में होगी.
हम Paging 1.0
के लिए, एपीआई में और बदलाव करने की योजना नहीं बना रहे हैं. साथ ही, एपीआई में कोई बदलाव करने का बार भी बहुत ज़्यादा है.
पेजिंग के लिए ऐल्फ़ा RxJava2 सपोर्ट को एक अलग वैकल्पिक मॉड्यूल के तौर पर रिलीज़ किया गया (android.arch.paging:rxjava2:1.0.0-alpha1
)
और कुछ समय के लिए इसका अलग वर्शन बनाया जाएगा, जब तक यह स्थिर नहीं हो जाता.
यह नई लाइब्रेरी, LivePagedListBuilder
की जगह एक RxJava2 विकल्प उपलब्ध कराती है. इससे प्रॉपर्टी को बनाया जा सकता है
Observable
और Flowable
, Executor
के बजाय Scheduler
सेकंड ले रहे हैं:
Kotlin
val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable()
Java
Observable<PagedList<Item>> pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable();
पृष्ठांकन
नई सुविधाएं
RxPagedListBuilder
को नएandroid.arch.paging:rxjava2
आर्टफ़ैक्ट के ज़रिए जोड़ा गया है.
एपीआई में किए गए बदलाव
बिल्डर में एक्ज़िक्यूटर की भूमिका को साफ़ तौर पर दिखाने के लिए, एपीआई में बदलाव:
setBackgroundThreadExecutor()
का नाम बदलकरsetFetchExecutor()
किया गया (PagedList.Builder
औरLivePagedListBuilder
में)setMainThreadExecutor()
का नाम बदलकरsetNotifyExecutor()
किया (PagedList.Builder
में).
PagedList.mCallbacks
सदस्य को निजी के तौर पर सेट किया गया.
गड़बड़ियां ठीक की गईं
LivePagedListBuilder
तय किए गए एक्ज़िक्यूटर पर, शुरुआतीPagedList
लोड को ट्रिगर करता है, की जगह आर्क कॉम्पोनेंट IO थ्रेड पूल बना सकते हैं.इंटरनल
DataSource
रैपर में अमान्य व्यवहार को ठीक कर दिया गया है (DataSource.map
लागू करने के लिए इस्तेमाल किया गया था, साथ ही, प्लेसहोल्डर बंद हैPositionalDataSource
लोड हो रहा है) b/77237534
रूम
गड़बड़ियां ठीक की गईं
रूम के Rx
Single
औरMaybe
को लागू करने की प्रोसेस में हुई गंभीर गड़बड़ी को ठीक कर दिया गया है, जहां यह क्वेरी को समय से पहले रीसाइकल कर देगा. इससे एक से ज़्यादा क्वेरी जोड़ने पर समस्याएं आ सकती हैं दिए गएSingle
याMaybe
इंस्टेंस का ऑब्ज़र्वर. b/76031240अगर डेटाबेस को कॉल किया जाए, तो RoomDatabase.clearAllTables
VACUUM
न हो लेन-देन के दौरान होता है. b/77235565
21 मार्च, 2018
कमरा 1.1.0-beta1
, पेजिंग 1.0.0-alpha7
, और लाइफ़साइकल 1.1.1
की बुकिंग रद्द कर दी गई है.
रूम
एपीआई में किए गए बदलाव
- एपीआई की समीक्षा के आधार पर,
@RawQuery
अब क्वेरी पैरामीटर के तौर परString
को पास करना स्वीकार नहीं करता. आपको SupportSQLiteQuery का इस्तेमाल करना होगा. (आर्ग्युमेंट के साथ काम करने वाली सुविधा के साथ SupportSQLiteQuery का इंस्टेंस आसानी से बनाने के लिए, SimpleSQLiteQuery देखें). - RoomDatabase.Builder का फ़ॉलबैकToDestructiveMigrationFrom तरीका, अब
vararg Integer
के बजायvararg int
को स्वीकार करता है.
गड़बड़ियां ठीक की गईं
RoomDatabase.clearAllTables अब ऑपरेटिंग सिस्टम में वापस जगह पाने की कोशिश करता है. इसके लिए, यह WAL चेकपॉइंट सेट करके और डेटाबेस को
VACUUM
सेट करता है.@RawQuery
अबobservedEntities
प्रॉपर्टी के लिए किसी भी पोजो को स्वीकार करता है. हालांकि, इसके लिए ज़रूरी है कि पोजो अपनेEmbedded
फ़ील्ड याRelation
से एक या एक से ज़्यादा इकाइयों का रेफ़रंस देता है. बी/74041772पेजिंग: रूम का DataSource लागू करने पर अब मल्टी-टेबल डिपेंडेंसी (जैसे कि रिलेशन और जॉइन) को सही तरीके से हैंडल किया जाता है. पहले, ये कोड नए नतीजों को ट्रिगर नहीं कर पाते थे या उन्हें इकट्ठा नहीं किया जा सकता था. b/74128314
लाइफ़साइकल
सिर्फ़ एक छोटा बदलाव: android.arch.core.util.Function
को arch:runtime
से arch:common
में ले जाया गया. इससे इसे रनटाइम डिपेंडेंसी के बिना इस्तेमाल किया जा सकता है, उदाहरण के लिए नीचे paging:common
में.
lifecycle:common
, lifecycle:runtime
पर निर्भर करता है. इसलिए, इस बदलाव का lifecycle:runtime
पर कोई असर नहीं पड़ेगा. यह सिर्फ़ ऐसे मॉड्यूल पर असर डालेगा जो सीधे तौर पर lifecycle:common
पर निर्भर करते हैं, जैसा कि पेजिंग करता है.
पृष्ठांकन
पेजिंग 1.0.0-alpha7
को लाइफ़साइकल 1.1.1
के साथ रिलीज़ किया गया. पेजिंग alpha7, ऊपर बताई गई Function
क्लास के स्थानांतरण पर निर्भर करता है, इसलिए आपको अपनी lifecycle:runtime
डिपेंडेंसी को android.arch.lifecycle:runtime:1.1.1
पर अपडेट करना होगा.
पेजिंग alpha7
को पेजिंग हिट बीटा से पहले अंतिम रिलीज़ होने की योजना है.
एपीआई में किए गए बदलाव
DataSource.LoadParams
ऑब्जेक्ट में अब एक सार्वजनिक कंस्ट्रक्टर है औरDataSource.LoadCallback
ऑब्जेक्ट अब ऐब्स्ट्रैक्ट हैं. इससे,DataSource
को रैप करने की सुविधा चालू हो जाती है या मॉक कॉलबैक की मदद से,DataSource
को सीधे तौर पर टेस्ट किया जा सकता है. b/72600421- DataSource और DataSource.Function के लिए मैपर
map(Function<IN,OUT>)
की मदद से,DataSource
के लोड किए गए नतीजों को बदला जा सकता है, उन्हें रैप किया जा सकता है या उनमें सजावट की जा सकती है.mapByPage(<List<IN>,List<OUT>>)
बैच प्रोसेसिंग के लिए इसे चालू करता है (उदाहरण के लिए, अगर एसक्यूएल से लोड किए गए आइटम के लिए किसी अलग डेटाबेस की अतिरिक्त क्वेरी करने की ज़रूरत है, तो उसे बैच के तौर पर किया जा सकता है.)
PagedList#getDataSource()
को सुविधा के तरीके के तौर पर जोड़ा गया है b/72611341- एपीआई से सभी ऐसी क्लास हटा दी गई हैं जो अब काम नहीं करतीं. इनमें
recyclerview.extensions
पैकेज औरLivePagedListProvider
के बचे हुए हिस्से भी शामिल हैं. - मैप की सुविधाओं को चालू करने के लिए,
DataSource.Factory
को इंटरफ़ेस से ऐब्स्ट्रैक्ट क्लास में बदला जाता है.
गड़बड़ियां ठीक की गईं
- बदले गए बिल्डर को फ़ाइनल करना है. b/70848565
- रूम
DataSource
को लागू करने की सुविधा को, अब मल्टी-टेबल क्वेरी को हैंडल करने के लिए ठीक कर दिया गया है - यह समस्या रूम 1.1.0-beta1 में मौजूद है, ऊपर दिया गया है. - उस गड़बड़ी को ठीक किया गया है जिसमें प्लेसहोल्डर के चालू होने पर,
PositionalDataSource
के लिएBoundaryCallback.onItemAtEndLoaded
शुरू नहीं होगा और कुल साइज़, पेज साइज़ का सटीक गुणा होता है.
2 मार्च, 2018
1.1.0-alpha3
कमरे की बुकिंग रद्द हो गई है. इस ऐल्फ़ा रिलीज़ की आखिरी तारीख यह है:
कमरा 1.1.0
.
एपीआई में किए गए बदलाव
अमान्य सिस्टम ट्रैकर का
addObserver
औरremoveObserver
तरीके अब सिंक्रोनस हैं और उन्हें बिना यूज़र इंटरफ़ेस वाले थ्रेड पर कॉल किया जाना चाहिए. यह टेबल देखते समय, रेस की कुछ स्थितियों को रोकता है.RoomDatabase पर,
clearAllTables()
का नया तरीका मौजूद है क्लास के सभी कॉन्टेंट को हटा देगा. b/63807999SupportSQLiteQuery
में अब एकgetArgCount()
तरीका उपलब्ध है, जिससे नंबर मिलता है पैरामीटर का इस्तेमाल किया जा सकता है. b/67038952
गड़बड़ियां ठीक की गईं
@RawQuery
अब पेजिंग क्वेरी के लिए ठीक से काम करता है. b/72600425रूम के नाम अब सही तरीके से
Dao
क्लास जनरेट किए गए हैं, ताकि नाम एक-दूसरे से मैच न होने पर गड़बड़ी से बचा जा सके दो या उससे ज़्यादाDao
इंटरफ़ेस, एक ही पैकेज में इनर क्लास हैं और उनमें वही नाम. b/73536380Pojo
में जेनेरिक फ़ील्ड टाइप को एक्सटेंशन के सदस्य के तौर पर सही तरीके से पार्स किया गया है क्लास. b/73534868Dao
इंटरफ़ेस में मौजूद क्वेरी पैरामीटर, जो डिपेंडेंसी से इनहेरिट किए गए हैं आर्टफ़ैक्ट को अब सही तरीके से पार्स किया गया है. b/68118746@Relation
के लिए जनरेट की गई क्वेरी, अब फ़ील्ड के नाम को सही तरीके से छोड़ देती हैं. b/70925483
27 फ़रवरी, 2018
पेजिंग 1.0.0-alpha6
को सपोर्ट लाइब्रेरी की रिलीज़ 27.1.0 के साथ रिलीज़ किया गया.
ListAdapter
और उससे जुड़ी कुछ क्लास को पेजिंग लाइब्रेरी से सीधे Recyclerview में ट्रांसफ़र कर दिया गया है. साथ ही, कुछ नामों के साथ-साथ कुछ नाम भी बदले गए हैं, ताकि कुछ खास क्लास के फ़ंक्शन को बेहतर तरीके से समझने में मदद मिल सके. पेजिंग के इस ऐल्फ़ा रिलीज़ में, एपीआई उल्लंघन से जुड़े अहम बदलाव होने की आखिरी संभावना है.
एपीआई में किए गए बदलाव
- क्लास को recyclerview-v7 में ले जाया गया:
ListAdapter
- क्लास के नाम बदले गए और उन्हें recyclerview-v7 पर ले जाया गया:
ListAdapterHelper
->AsyncListDiffer
ListAdapterConfig
->AsyncDifferConfig
DiffCallback
->DiffUtil.ItemCallback
- पेजिंग-रनटाइम के अंदर क्लास का नाम बदला गया:
PagedListAdapterHelper
->AsyncPagedListDiffer
ट्रांसफ़र की गई क्लास, RecyclerView के साथ काम की थीं. यह पेजिंग लाइब्रेरी से अलग थी. इसका मतलब है कि पेजिंग ऐल्फ़ा रिलीज़ के बिना भी इनका इस्तेमाल किया जा सकता है. हालांकि, इसका मतलब यह भी है कि पेजिंग का इस्तेमाल करने वाले ऐप्लिकेशन को एक ही समय में, ऐल्फ़ा 6 और सपोर्ट लाइब्रेरी 27.1.0 में अपग्रेड करना होगा.
** पेजिंग Alpha6 के लिए माइग्रेशन गाइड: **
- पेजिंग और रीसाइकलरव्यू डिपेंडेंसी को
android.arch.paging:runtime:1.0.0-alpha6
औरcom.android.support:recyclerview-v7:27.1.0
पर अपडेट करें- ये सारे काम एक साथ किए जाने चाहिए, क्योंकि ListAdapter की सुविधा को पेजिंग से RecyclerView पर ले जाया गया हो
ListAdapterHelper
के सभी रेफ़रंस कोAsyncListDiffer
में अपडेट करेंgetCurrentList().getItem(index)
औरgetCurrentList().size()
को कॉल करने के पैटर्न के हिसाब से,getItem(index)
/getItemCount()
को हटा दिया गया है. ये ज़्यादा अश्लील हैं.
ListAdapterConfig
के सभी रेफ़रंस कोAsyncDifferConfig
में अपडेट करेंDiffCallback
के सभी रेफ़रंस कोDiffUtil.IttemCallback
में अपडेट करेंPagedListAdapterHelper
के सभी रेफ़रंस कोAsyncPagedListDiffer
में अपडेट करेंsetList()
के रेफ़रंस कोsubmitList()
में अपडेट करें- सूची में अंतर की एक साथ काम नहीं करने वाली प्रोसेस के बारे में बताने के लिए नाम बदला गया
गड़बड़ियां ठीक की गईं
- प्लेसहोल्डर होने पर, शुरुआती लोड में गलत शुरुआती पोज़िशन पास होने की समस्या ठीक की गई बंद हैं. b/73513780
15 फ़रवरी, 2018
1.1.0-alpha2
कमरे की बुकिंग रद्द हो गई है.
नई सुविधाएं
रूम में अब पहले से लिखें मोड में डेटाबेस खोला जा सकता है. इस मोड में लिखने पर, आपकी पढ़ी गई क्वेरी ब्लॉक नहीं होंगी. हालांकि, यह ज़्यादा मेमोरी का इस्तेमाल करता है (कई कनेक्शन की वजह से), यह मोड आम तौर पर ऐसा होता है और तेज़ी से. डिफ़ॉल्ट रूप से, अगर डिवाइस
API 16
या उससे बड़ी स्क्रीन पर है, तो रूम WAL का इस्तेमाल करेगा कम मेमोरी डिवाइस नहीं है. इस व्यवहार को कंट्रोल करने के लिए,RoomDatabase.Builder
परsetJournalMode()
तरीका. बी/67757002Guava सहायता: रूम अब Guava पर काम करता है
DAO
क्वेरी मेंOptional<T>
याListenableFuture<T>
.ListenableFuture<T>
का इस्तेमाल करने के लिए, आपको रूम सेguava
आर्टफ़ैक्ट इंपोर्ट करना होगा (android.arch.persistence.room:guava:1.1.0-alpha2
).अब कमरे में
DAO
क्वेरी का जवाब देने के लिए,java.util.Optional<T>
की सुविधा उपलब्ध है.डिफ़ॉल्ट रूप से इस्तेमाल किए जाने वाले इंटरफ़ेस के तरीके अब इसमें काम करते हैं
DAO
क्लास में@Transaction
तरीके. यहJava 8
और, दोनों के लिए काम करता हैKotlin
. b/72416735
गड़बड़ियां ठीक की गईं
@Relation
वाले कंस्ट्रक्टर का इस्तेमाल करने पर, कंपाइलेशन गड़बड़ी नहीं होगी. ऐसा तब होगा, जब दूसरा कंस्ट्रक्टर है, जिसका इस्तेमाल किया जा सकता है. b/72884434@Query
तरीकों में, टेबल के नामों को'
से एस्केप किया गया है. अब ये सही तरीके से एस्केप किए गए हैं के लिए अमान्य है. b/72366965रूम अब क्लास के स्ट्रक्चर को पढ़ने के लिए, Kotlin
@Metadata
एनोटेशन का इस्तेमाल करता है को लागू करते हैं. इसका मतलब है कि भले ही पोजो, पर निर्भर नहीं है, तो इसके कंस्ट्रक्टर पैरामीटर के नाम ठीक से पढ़े जा सकते हैं. b/67181813डाउनग्रेड माइग्रेशन पाथ ढूंढने से जुड़ी समस्या ठीक की गई. b/72153525
किसी कॉलम से माइग्रेट करते समय, नॉन डिफ़ॉल्ट कॉलम टाइप को सही तरीके से हैंडल किया जाता है रूम से मौजूदा डेटाबेस को हटा दिया जाता है. b/71953987
अब कमरा, Kotlin क्लास में मौजूद
boolean?
फ़ील्ड को सही तरीके से हैंडल करता है. b/72786402
22 जनवरी, 2018
लाइफ़साइकल 1.1.0
, रूम 1.1.0-alpha1
, और पेजिंग 1.0.0-alpha5
रिलीज़ हो गई हैं.
लाइफ़साइकल 1.1.0
पैकेजिंग में बदलाव
अब नई, बहुत कम डिपेंडेंसी उपलब्ध हैं:
android.arch.lifecycle:livedata:1.1.0
android.arch.lifecycle:viewmodel:1.1.0
एपीआई में किए गए बदलाव
- हटाए गए
LifecycleActivity
औरLifecycleFragment
को अब हटा दिया गया है - कृपया इसका इस्तेमाल करेंFragmentActivity
,AppCompatActivity
याFragment
का समर्थन करें. ViewModelProviders
औरViewModelStores
में@NonNull
एनोटेशन जोड़े गएViewModelProviders
कंस्ट्रक्टर अब काम नहीं करता है - कृपया सीधे इसके स्टैटिक तरीकों का इस्तेमाल करेंViewModelProviders.DefaultFactory
के इस्तेमाल पर रोक लगा दी गई है - कृपयाViewModelProvider.AndroidViewModelFactory
का इस्तेमाल करें- वापस पाने के लिए स्टैटिक
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
तरीका जोड़ा गया एक स्टैटिकFactory
, जोViewModel
औरAndroidViewModel
इंस्टेंस बनाने के लिए सही है.
कमरा 1.1.0-alpha1
नई सुविधाएं
RawQuery
: इस नए एपीआई की मदद से,@Dao
मेथड को क्वेरी पैरामीटर के तौर पर एसक्यूएल मिल सकता है b/62103290, b/71458963fallBackToDestructiveMigrationsFrom
:RoomDatabase.Builder
में इस नए एपीआई का इस्तेमाल करके इस पर ज़्यादा बारीकी से कंट्रोल किया जाता है कि स्कीमा वर्शन की मदद से, नुकसान पहुंचाने वाला माइग्रेशन शुरू किया जाता है अनुमति है (FlbackToDestructiveMigration की तुलना में) b/64989640- रूम अब सिर्फ़ नए पेजिंग एपीआई (ऐल्फ़ा-4+) के साथ काम करता है जो अब काम नहीं करता है
LivePagedListProvider
. नए रूम ऐल्फ़ा का इस्तेमाल करने के लिए, आपको पेजिंग का इस्तेमाल करना होगाalpha-4
या इसके बाद के वर्शन पर स्विच करें. अगर आपने अभी तकLivePagedListProvider
सेLivePagedListBuilder
पर स्विच नहीं किया है, तो अब कर लें.
गड़बड़ियां ठीक की गईं
- Kotlin Kapt टाइप के लिए बेहतर सपोर्ट. b/69164099
- फ़ील्ड के क्रम से अब स्कीमा अमान्य नहीं होता. b/64290754
पेजिंग 1.0.0-alpha5
गड़बड़ियां ठीक की गईं
- प्लेसहोल्डर के बंद होने पर, पेज के लोड होने की समस्या ठीक करें b/70573345
- legalArgument Settings गड़बड़ी को ट्रैक करने के लिए अतिरिक्त लॉगिंग b/70360195 (और अनुमान के हिसाब से रूम-साइड समाधान)
- Javadoc के सैंपल कोड से जुड़ी समस्याएं ठीक करना b/70411933, b/71467637
11 दिसंबर, 2017
पेजिंग alpha4-1
रिलीज़ की गई. पेजिंग ऐल्फ़ा 4 के लिए, यह एक छोटी गड़बड़ी ठीक की गई है.
गड़बड़ियां ठीक की गईं
- अमान्य डेटा सोर्स के लिए, कॉलबैक पैरामीटर की जांच न करें. b/70353706, b/70360195
7 दिसंबर, 2017
पेजिंग alpha4
रिलीज़ की गई. इसमें अहम बदलावों के साथ कुछ बदलाव किए गए हैं. इसमें ज़्यादातर बदलाव किए गए हैं
टारगेटिंग नेटवर्क, और नेटवर्क + डेटाबेस के इस्तेमाल के उदाहरण.
एपीआई में किए गए बदलाव
DataSource
अब एक एसिंक्रोनस एपीआई है. सीधे नेटवर्क से पेजिंग करना आसान बनाने के लिए:- शुरुआती साइज़ और डेटा के लिए सिंगल एंट्री पॉइंट
- कॉलबैक करके और बाद में डिस्पैच करके, नेटवर्क को फिर से कोशिश करने की सुविधा मिलती है
- Threadsafe कॉलबैक सिंगल नेटवर्क बनाने के लिए एसिंक्रोनस लोडिंग की अनुमति देते हैं
यूज़र इंटरफ़ेस (यूआई) थ्रेड पर
PagedList
का बैक अप लिया गया. - शुरुआती लोड पैरामीटर के आस-पास होने वाली गड़बड़ी के बारे में साफ़ तौर पर जानकारी
TiledDataSource
का नाम बदलकरPositionalDataSource
कर दिया गया है, ताकि यह दिखाया जा सके कि रैंक के हिसाब से इंडेक्स करना. साथ ही, यह भी कि प्लेसहोल्डर बंद किया गया.PageKeyedDataSource
को इसमें एम्बेड किए गए अगले/पिछले टोकन के साथ काम करने के लिए जोड़ा गया है नेटवर्क पेज लोड होता है.KeyedDataSource
का नाम बदलकरItemKeyedDataSource
किया गया, ताकि अंतर साफ़ तौर पर बताया गया है.LivePagedListBuilder
औरDataSource.Factory
बदल दिए गएLivePagedListProvider
. बिल्डर, Google Ads में उतनी ही सुविधाएं देता है और आसान डिफ़ॉल्ट सेटिंग. फ़ैक्ट्रीDataSource
जनरेशन की अनुमति देती हैLiveData
से अलग रहने के लिए कोड का इस्तेमाल करें.डेटाबेस और नेटवर्क के इस्तेमाल के उदाहरण के लिए,
PagedList.BoundaryCallback
को जोड़ा गया.अब
PagedList.Builder
कंस्ट्रक्टर,DataSource
+PagedList.Config
लेता हैLivePagedListBuilder
से ज़्यादा मिलता-जुलता है और डायमंड ऑपरेटर को Java की भाषा या Kotlin में अनुमानित टाइप.PagedList.getConfig()
को जोड़ा गया और अबPagedList.Config
की सदस्यता सार्वजनिक हो गई है प्रॉपर्टी.KeyedDataSource.loadBefore()
के लिए अब नतीजे वापस आने की उम्मीद नहीं है.PagedListAdapter.onCurrentListChanged()
को ये अपडेट सुनने के लिए जोड़ा गया PagedList दिखाया जा रहा है.
गड़बड़ियां ठीक की गईं
- PagedListAdapter(हेल्पर) b/67883658 में, IndexOutOfBoundsअपवाद ठीक नहीं हुआ है
1.0.0 - 6 नवंबर, 2017
पेजिंग को छोड़कर सभी मुख्य कॉम्पोनेंट अब 1.0.0
हैं. यह पहले जैसा ही है
reactivestreams
लाइब्रेरी में एक बदलाव किए जाने को छोड़कर, rc1
के तौर पर रिलीज़ करें.
गड़बड़ियां ठीक की गईं
LiveDataReactiveStreams
अब सही तरीके से लागू करता है Reactive Streams की खास बातें. b/67999342
रिलीज़ कैंडिडेट - 18 अक्टूबर, 2017
पेजिंग को छोड़कर सभी मुख्य आर्टफ़ैक्ट (पेजिंग को छोड़कर) अब 1.0.0-rc1
हैं.
हमारे पास कोई भी ज़्यादा ज्ञात समस्याएं या नई सुविधाएं नहीं हैं
1.0.0
रिलीज़. 1.0.0-rc1
का इस्तेमाल करने के लिए, कृपया अपने प्रोजेक्ट अपग्रेड करें और हमारी मदद करें
ताकि हम एक शानदार पत्थर 1.0.0
भेज सकें.
व्यवहार में बदलाव
- इस रिलीज़ के साथ,
Lifecycle.Event#ON_STOP
को अब तब भेजा जाएगा, जबonSaveInstanceState
को कॉल किया गया है (पहले इसेCREATED
के तौर पर मार्क किया गया थाON_STOP
डिस्पैच किए बिना). इस बारे में ज़्यादा जानने के लिए, यहां जाएं: लाइफ़साइकल के दस्तावेज़.
गड़बड़ियां ठीक की गईं
चैट रूम:
- कमरा अब सबसे नए जीरियल आर्टफ़ैक्ट पर निर्भर करता है, जो
OutOfMemory
को ठीक करता है समस्याओं को हल करने में मदद मिलती है. b/62473121 Query
तरीकों के बारे में बताने के लिए, अब@Transaction
का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए,@Transaction
पर दस्तावेज़ का रेफ़रंस देखें. b/65112315- रूम की
StringUtil
क्लास को सार्वजनिक तौर से हटा दिया गया है एपीआई (इसे सार्वजनिक एपीआई के तौर पर कभी डिज़ाइन नहीं किया गया था).
- कमरा अब सबसे नए जीरियल आर्टफ़ैक्ट पर निर्भर करता है, जो
लाइफ़साइकल:
LiveData
तब ठीक से काम करता है, जब गतिविधि, एपीआई पर कुछ हद तक कवर होती है < 24. b/65665621पैरंट क्लास में
OnLifecycleEvent
तरीकों को अब सही तरीके से कॉल किया जाता है या अगर मुमकिन न हो, तो कंपाइलेशन के दौरान चेतावनी को प्रिंट किया जाएगा. b/63474615लाइफ़साइकल अब
WeakReference
को वापस अपनी लाइफ़साइकल ओनर, ताकि अगर लाइफ़साइकल को ज़्यादा समय तक याद रखा जाता है, तो लाइफ़साइकल के मालिक सामान्य से ज़्यादा है (यह सिर्फ़ एक सावधानी बरतना है, तो आपको सावधानी बरतनी चाहिए कि आपLifecycle
लीक किया गया हो).
9 अक्टूबर, 2017
पेजिंग alpha-3
रिलीज़ की गई; जो इसे beta 2
के साथ काम करता है
लाइफ़साइकल और रूम की रिलीज़ के बारे में ज़्यादा जानकारी.
गड़बड़ियां ठीक की गईं
- पेजिंग से जुड़ा बेहतर दस्तावेज़.
5 अक्टूबर, 2017
पेजिंग को छोड़कर सभी मुख्य आर्टफ़ैक्ट (पेजिंग को छोड़कर) अब beta 2
हैं.
इस रिलीज़ में पेजिंग का कोई नया वर्शन उपलब्ध नहीं है.
गड़बड़ियां ठीक की गईं
लाइफ़साइकल:
LiveDataReactiveStreams
अब सोर्स की सदस्यता छोड़ देता है प्रकाशक को तब चालू करें, जबLiveData
चालू न हो. b/62609183- जब पैरंट क्लास किसी अन्य मॉड्यूल से होती है, तो लाइफ़साइकल इवेंट को पैरंट क्लास में सही तरीके से लागू किया जाता है. b/63474615
- LiveData, ऑब्ज़र्वर को सही तरीके से हैंडल करता है, जब वे सदस्यता रद्द करते हैं सदस्यता लेना होगा. b/66337741
Java 8 लैंग्वेज आर्टफ़ैक्ट का
FullLifecycleObserver
, अब डिपेंडेंसी ट्री में उपलब्ध है. b/66525578ProGuard के लिए, कृपया अपनी ProGuard फ़ाइल में ये लाइनें जोड़ें. (1.0.0 शिप होने पर, इसकी ज़रूरत नहीं होगी)
-keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
चैट रूम:
- रूम अब कंपाइल के समय पर गड़बड़ी को प्रिंट करता है, जब पोजो को
@Query
तरीके में ऐसा@NonNull
फ़ील्ड है जो इनमें से किसी से भी मेल नहीं खाता कॉलम. अगर फ़ील्ड@Nullable
है, तो सिर्फ़ कमरा बुक किया जा सकता है चेतावनी को प्रिंट करता है. b/67115337 - रूम, अब ओएस के नए वर्शन के इंडेक्स की पुष्टि करता है. बी/63132683
- अगर कई पोजो में मिलते-जुलते कंस्ट्रक्टर हैं. b/67353427
- एकल कॉलम की प्राथमिक कुंजियां
Nullable
हो सकती हैं, अगर यहInteger
याLong
. बी/67086876 - इनवैलिडेशन ट्रैकर, टेस्ट मोड में री-एंट्री को सही तरीके से हैंडल करता है. b/65471397
- रूम अब कॉलम और टेबल में अमान्य वर्णों की जांच करता है
कंपाइल करते समय नाम (अमान्य वर्ण:
`
,"
). b/64749111
- रूम अब कंपाइल के समय पर गड़बड़ी को प्रिंट करता है, जब पोजो को
21 सितंबर, 2017
इस रिलीज़ के साथ, सभी आर्किटेक्चर कॉम्पोनेंट मॉड्यूल कम से कम beta 1
तक पहुंच गए हैं
(नई पेजिंग लाइब्रेरी, जो कि alpha 2
है) को छोड़कर.
हम एपीआई में और बदलाव करने की योजना नहीं बना रहे हैं. ऐसे बदलाव हो सकते हैं जो पहले से न किए गए हों, लेकिन
1.0.0
से पहले, किसी एपीआई को बार-बार बदलने की प्रोसेस बहुत ज़्यादा होती है और इसके होने की संभावना बहुत कम होती है.
- लाइफ़साइकल गतिविधि और
1.0.0
के स्थिर होने से पहले, Lifecycleफ़्रैगमेंट को हटा दिया जाएगा. वे सहायता लाइब्रेरी26.1.0
या इसके बाद के वर्शन का इस्तेमाल करते समय, की ज़रूरत नहीं होती है.
ऐल्फ़ा फ़ेज़ के उलट, बीटा फ़ेज़ की अवधि बहुत कम होती है.
वर्शन में बदलाव
- लाइफ़साइकल एक्सटेंशन और रूम का नाम अब
beta 1
है - पेजिंग अब
alpha 2
है - लाइफ़साइकल (रनटाइम, सामान्य) और आर्क कोर (सामान्य) में कोई बदलाव नहीं हुआ है. ये दोनों आर्टफ़ैक्ट
हैं. ये वर्शन 13 सितंबर से
1.0.0
हैं.
नए आर्टफ़ैक्ट
लाइफ़साइकल में अब एक नया आर्टफ़ैक्ट मौजूद है, जिसे
common-java8
कहते हैं. इस आर्टफ़ैक्ट में एक नया इंटरफ़ेस जिसे Default LifecycleObserver नाम से शुरू करता है; कौनसा यह सभी लाइफ़साइकल तरीकों के लिए, डिफ़ॉल्ट तौर पर लागू होता है. अगर Java 8 लैंग्वेज का इस्तेमाल किया जा रहा है, आपको टिप्पणियों के बजाय इस आर्टफ़ैक्ट को प्राथमिकता देनी चाहिए.beta1
में एक गड़बड़ी की वजह से, आपको इस पर साफ़ तौर पर डिपेंडेंसी जोड़नी होगी नएcommon-java8
आर्टफ़ैक्ट का इस्तेमाल करने के लिए,android.arch.lifecycle:common:1.0.1
मॉड्यूल. यह समस्याbeta2
में ठीक कर दी जाएगी.
पैकेजिंग में बदलाव
android.arch.persistence.room.db
कोandroid.arch.persistence.db
में ले जाया गयाandroid.arch.persistence.room.db-impl
को ले जाया गया है और उसका नाम बदलकरandroid.arch.persistence.db-framework
कर दिया गया है
ये दोनों आर्टफ़ैक्ट पहले से ही रूम पर निर्भर हैं. इसलिए, अगर सीधे तौर पर उनका इस्तेमाल नहीं किया जा रहा है, तो आपको अपनी बिल्ड फ़ाइलों में कुछ भी बदलने की ज़रूरत नहीं है.
एपीआई में किए गए बदलाव
चैट रूम:
- @ColumnInfo एनोटेशन अब कॉलम पर कोलेशन सेट करने की सुविधा देता है. बी/62007004
transient
फ़ील्ड को अब डिफ़ॉल्ट रूप से अनदेखा किया जाता है. हालांकि, ऐसा तब नहीं होगा, जब इन फ़ील्ड के बारे में@ColumnInfo
के साथ एनोटेट किया गया हो.@Embedded
या@Relation
. b/62600692- प्राथमिक कुंजियों के साथ
@NonNull
के बारे में तब तक जानकारी होनी चाहिए, जब तक वे अपने-आप जनरेट न हों. b/64292391- इस बदलाव के लिए, स्कीमा माइग्रेशन की ज़रूरत हो सकती है. आपको हुई परेशानी के लिए, हम माफ़ी चाहते हैं.
- सुविधा का एक नया एनोटेशन (@Transaction) जोड़ा गया, जो
DAO
तरीके को ओवरराइड करता है और उसे ट्रांज़ैक्शन में चलाता है.
SQLite डेटाबेस के साथ काम करता है:
- डेटाबेस के कॉन्फ़िगरेशन में एपीआई के बदलाव. b/65349673 b/65499876
पेजिंग:
- पेजिंग के लिए बेहतर दस्तावेज़, जिसमें ज़्यादा उदाहरण और थ्रेड की व्याख्याएं भी शामिल हैं.
गड़बड़ियां ठीक की गईं
- कमरा:
@Query
तरीकों में, Kotlin की मल्टी-लाइन स्ट्रिंग सही तरीके से हैंडल की जाती हैं. b/65809374
- पेजिंग:
- पेजिंग आर्टफ़ैक्ट अब जूनिट पर निर्भर नहीं करता है. b/65690261
1.0.0 ऐल्फ़ा 9-1 - 13 सितंबर, 2017
यह एक बड़ी रिलीज़ है, जिसमें कोर लाइफ़साइकल आर्टफ़ैक्ट (रनटाइम, सामान्य) और आर्क कोर (सामान्य)
स्टेबल वर्शन 1.0.0
तक पहुंचें.
इस बदलाव के साथ ही, सहायता लाइब्रेरी 26.1.0 अब इन लाइब्रेरी पर निर्भर करती है. AppCompatActivity और सहायता फ़्रैगमेंट, दोनों अब लाइफ़साइकलओनर इंटरफ़ेस लागू करें.
नए इंटिग्रेशन का फ़ायदा पाने के लिए, यह रिलीज़, सपोर्ट लाइब्रेरी 26.1.0
पर भी निर्भर करेगी.
नई लाइब्रेरी: पेजिंग
इस रिलीज़ में पेजिंग नाम की एक नई लाइब्रेरी भी शामिल है, जिसकी मदद से
डेटा सेट को ज़रूरत के हिसाब से कई हिस्सों में RecyclerView में बदलें. पेजिंग को alpha1
के तौर पर रिलीज़ किया गया है
और उसका अपना रिलीज़ साइकल होगा.
एपीआई में किए गए बदलाव
- इन क्लास के इस्तेमाल पर रोक लगा दी गई है और इन्हें आने वाले समय में रिलीज़ किया जाएगा:
गड़बड़ियां ठीक की गईं
अगर ऐप्लिकेशन के क्लासपाथ में कोई जानकारी मौजूद है, तो जनरेट की गई क्लास के साथ अब
@Generated
की जानकारी जोड़ी जाती है. b/35754819MediatorLiveData की ऑब्ज़र्वर तुलना से जुड़ी गड़बड़ी को ठीक किया गया. b/64413274
SQLite
WITH
क्वेरी अब [LiveData] के साथ काम करती हैं. [ref-LiveData] b/62510164गड़बड़ी को ठीक किया गया है जहां एक से ज़्यादा टेबल होने पर अमान्यationTracker सही सूची नहीं भेजेगा देखा गया है. बी/65099281
वह गड़बड़ी ठीक की गई है जहां Room के ज़रिए Windows पर अलग-अलग फ़ाइलें जनरेट की जाएंगी. b/64470691
रूट पैकेज में LifecycleObserver को अब इस्तेमाल किया जा सकता है. b/62310817
1.0.0 ऐल्फ़ा 9 - 16 अगस्त, 2017
गड़बड़ियां ठीक की गईं
- LiveData में एक गड़बड़ी को ठीक किया गया.
onChanged
तरीके से, पहले यूआरएल को हटाने पर, दूसरे ऑब्ज़र्वर को अनदेखा कर दिया गया था. b/64285805
1.0.0 ऐल्फ़ा 8 - 1 अगस्त, 2017
व्यवहार में बदलाव
- प्रिमिटिव टाइप या कॉलम के लिए,
NOT NULL
कंस्ट्रेंट जोड़ा गया है NonNull के साथ एनोटेट किया गया है. इससे आपकी साइट की बनावट टेबल का उपयोग किया जा सकता है, इसलिए यदि आप पहले से आर्किटेक्चर कॉम्पोनेंट अल्फ़ा 7 या पहले के वर्शन का उपयोग कर रहे हैं, अगर आपको डेटा सेव रखना है या बिल्डर मेंfallbackToDestructiveMigration()
तरीका जोड़ा गया है. b/62007004
एपीआई में किए गए बदलाव
- SupportSQLiteProgram अब AutoCloseable की सुविधा भी है. b/63131997
1.0.0 ऐल्फ़ा 7 - 26 जुलाई, 2017
गड़बड़ियां ठीक की गईं
लाइफ़साइकल रजिस्टर
removeObserver
तरीके में हुई गंभीर गड़बड़ी को ठीक कर दिया गया है. इसकी वजह से लाइफ़साइकल ऑब्ज़र्वर का डेटा टूट गया.कस्टम डेटाबेस b/63162311 के लिए अमान्य गड़बड़ी का ट्रैकर
1.0.0 ऐल्फ़ा 6 - 25 जुलाई, 2017
व्यवहार में बदलाव
लाइफ़साइकल ऑब्ज़र्वर कॉल का क्रम बदल दिया गया है. पहले ऑब्ज़र्वर को हमेशा उनके जोड़ने के क्रम में कॉल किया जाता था: अगर
observer1
कोobserver2
से पहले जोड़ा जाता है, तो उसेON_CREATE
और अन्य सभी इवेंट कोobserver2
से पहले मिलेगा. विनाश की घटनाओं के लिए अब यह सही नहीं है, उनके लिए ऑब्ज़र्वर को योग के विपरीत क्रम में कॉल किया जाता है. इसलिए, मौजूदा व्यवहार ऐसा है: अगरobserver1
कोobserver2
से पहले जोड़ा जाता है, तोON_CREATE
पहलेobserver1
को और फिरobserver2
को (ON_START
औरON_RESUME
के लिए एक ही) भेजा जाता है. हालांकि,ON_PAUSE
इवेंट पहलेobserver2
को और उसके बाद सिर्फ़observer1
को भेजा जाता है (ON_STOP
औरON_DESTROY
के लिए एक जैसा).अगर माइग्रेशन मौजूद नहीं है, तो चैट रूम में अपवाद दिखता है. पहले रूम, डेटाबेस को ही मिटाता था, लेकिन अब यह क्रैश हो जाता है. डेवलपर, बिल्डर एपीआई को कॉल करके, डेटा हटाने के तरीके के लिए ऑप्ट-इन कर सकते हैं. b/63872392
एपीआई में किए गए बदलाव
fallbackToDestructiveMigration()
तरीके कोRoomDatabase.Builder
में जोड़ा गया: माइग्रेशन न होने पर डेटाबेस को मिटाएं. b/63872392आर्किटेक्चर के कॉम्पोनेंट अब सहायता लाइब्रेरी 26.0.0 पर निर्भर करते हैं
गड़बड़ियां ठीक की गईं
@Embedded में नेस्ट किए गए @Relation को ठीक किया गया हैंडलिंग. b/63736065
अपने-आप बढ़ने वाली प्राथमिक कुंजी वाली टेबल के लिए, टेस्ट माइग्रेशन को ठीक किया गया. b/63393618
अब 'मिटाएं' या 'अपडेट करें' क्वेरी चलाने वाली @क्वेरी को सही तरीके से तर्क मिलते हैं. b/63872538
अब ViewModels को बनाए रखा जाता है, जब मालिक का फ़्रैगमेंट बैकस्टैक में होता है और कॉन्फ़िगरेशन दो बार बदलता है. b/38445801
1.0.0 ऐल्फ़ा 5 - 18 जुलाई, 2017
एपीआई में किए गए बदलाव
RoomDatabase.Builder
में कॉलबैक का नया तरीका जोड़ा गया, ताकि यह देखा जा सके कि डेटाबेस कब बनाया या खोला गया है. b/62699324@Query के लिए अब RxJava
Maybe
याSingle
दिखे. b/62231019
रूम में RxJava की सुविधा जोड़ने के लिए, आपको android.arch.persistence.room:rxjava2
आर्टफ़ैक्ट का इस्तेमाल करना होगा.
गड़बड़ियां ठीक की गईं
बिना किसी पैरामीटर के
@Delete
क्वेरी को ठीक किया गया. b/63608092गैटर और सेटर के लिए फ़िक्स रूम टाइप की जांच. b/63733651
1.0.0 ऐल्फ़ा 4 - 11 जुलाई, 2017
एपीआई में किए गए बदलाव
RoomDatabase में, सुविधा का नया तरीका (
runInTransaction()
) जोड़ा गया.@Insert
,@Delete
, और@Update
तरीकों में अब अलग-अलग तरह की इकाइयों के पैरामीटर मौजूद हो सकते हैं. b/62682405
गड़बड़ियां ठीक की गईं
@Dao
तरीकों मेंbyte[]
हैंडलिंग को ठीक किया गया. b/62460045रूम में माइग्रेशन की जांच करने के लिए, अब केस-इनसेंसिटिव तुलना का इस्तेमाल किया जाता है. b/62875382
Lifecycles आर्टफ़ैक्ट के लिए, ProGuard कॉन्फ़िगरेशन को ठीक किया गया. b/62113696
1.0.0 ऐल्फ़ा 3 - 15 जून, 2017
एपीआई में किए गए बदलाव
अब
@OnLifecycleEvent
में सिर्फ़ एक इवेंट पैरामीटर इस्तेमाल किया जा सकता है. यह Java 8 समर्थन के लिए तैयारी में एक परिवर्तन है ताकि हम माइग्रेट कर सकें ऐसे इंटरफ़ेस होने चाहिए जो आने वाले समय में डिफ़ॉल्ट तरीकों से जुड़े हों. इस बदलाव के संबंध में, सिर्फ़@OnLifecycleEvent(ON_ANY)
व्याख्या करने वाले तरीके से दूसरा पैरामीटर मिल सकता हैEvent
(पहला पैरामीटरLifecycleOwner
है). ज़्यादा जानकारी के लिए, लाइफ़साइकल दस्तावेज़ देखें.LifecycleActivity
औरLifecycleFragment
क्लासandroid.arch.lifecycle:extensions
आर्टफ़ैक्ट में ले जाई जाती है.माइग्रेशनTestHelper को इंस्ट्रुमेंटेशन इंस्टेंस मिलता है
Context
के बजाय टेस्ट ऐसेट से स्कीमा पढ़ें और ऐप्लिकेशन के कॉन्टेक्स्ट में डेटाबेस.@Insert
,@Delete
, और@Update
एनोटेशन@DAO
तरीकों में अब पैरामीटर टाइप के तौर परIterable
हो सकता है. b/62259820
गड़बड़ियां ठीक की गईं
लाइफ़साइकल इवेंट वाले ओवरराइड किए गए तरीकों को, अब एक से ज़्यादा बार कॉल नहीं किया जाता.
कई
IN
पैरामीटर अब सही तरीके से हैंडल किए जाते हैं. b/62608681ऐब्स्ट्रैक्ट डीएओ क्लास में अब कंस्ट्रक्टर हो सकता है, जिसे
@Database
मिलता है इंस्टेंस. b/38488747DAO
के पास अब टाइप पैरामीटर वाला सुपर क्लास/इंटरफ़ेस हो सकता है. b/62103620
1.0.0 ऐल्फ़ा 2 - 2 जून, 2017
एपीआई में किए गए बदलाव
VerifyationTracker कॉलबैक को अब टेबल के बदले गए नामों की सूची मिलती है. (b/38468740)
SupportSQLiteDatabase क्लास का एपीआई सरफ़ेस कम किया गया. (b/38481640)
गड़बड़ियां ठीक की गईं
- लाइफ़साइकल के लिए ProGuard फ़ाइलें. (b/62113696)
- टाइप कन्वर्टर के साथ डेटा की हानि. (b/62100716)
@Insert
क्वेरी सेLong[]
लौटाने की अनुमति दें.
1.0.0 ऐल्फ़ा 1 - 17 मई, 2017
MinSDK टूल: 14
सामान्य सलाह
हालांकि, हमने लॉन्च करने से पहले काफ़ी टेस्ट किए, लेकिन स्ट्रक्चर कॉम्पोनेंट अभी ऐल्फ़ा में मौजूद हैं. अगर आपको कोई प्रोडक्शन ऐप्लिकेशन बनाना है, तो ध्यान रखें कि 1.0 वर्शन के रिलीज़ होने से पहले, एपीआई बदल जाएगा और हो सकता है कि यह पूरी तरह मज़बूत न हो. अगर आपको लाइब्रेरी में इस्तेमाल होने वाली लाइब्रेरी में समस्याओं को डीबग करने में दिक्कत नहीं है, तो हम आपको पहले साइड प्रोजेक्ट में आर्किटेक्चर कॉम्पोनेंट इस्तेमाल करने का सुझाव देते हैं.
हम यह सुझाव नहीं दे रहे हैं कि सभी उपयोगकर्ता आज ही माइग्रेट करें. हमारे पास आर्किटेक्चर कॉम्पोनेंट की 1.0 रिलीज़ के लिए, माइग्रेशन गाइड तैयार है.
सीमाएं और समस्याएं जिनके बारे में पता है
- सहायता लाइब्रेरी में मौजूद लाइफ़साइकल
Fragment
औरActivityCompat
में अभीLifecycleOwner
इंटरफ़ेस लागू नहीं किया गया है. वे तब होते हैं, जब आर्किटेक्चर कॉम्पोनेंट 1.0.0 वर्शन पर पहुंच जाते हैं.