জীবনচক্র
এই টেবিলটি androidx.lifecycle
গ্রুপের সমস্ত শিল্পকর্মের তালিকা করে।
আর্টিফ্যাক্ট | স্থিতিশীল রিলিজ | প্রার্থী মুক্তি | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
জীবনচক্র-* | 2.8.7 | - | - | 2.9.0-আলফা07 |
জীবনচক্র-ভিউ মডেল-কম্পোজ | 2.8.7 | - | - | 2.9.0-আলফা07 |
নির্ভরতা ঘোষণা করা
জীবনচক্রের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle
ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:
কোটলিন
গ্রোভি
dependencies { def lifecycle_version = "2.8.7" def arch_version = "2.2.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" // ViewModel utilities for Compose implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" // Lifecycle utilities for Compose implementation "androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version" // Saved state module for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" // Annotation processor kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // alternately - if using Java8, use the following instead of lifecycle-compiler implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" // optional - helpers for implementing LifecycleOwner in a Service implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version" // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version" // optional - ReactiveStreams support for LiveData implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "androidx.arch.core:core-testing:$arch_version" // optional - Test helpers for Lifecycle runtime testImplementation "androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version" }
কোটলিন
dependencies { val lifecycle_version = "2.8.7" val arch_version = "2.2.0" // ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version") // ViewModel utilities for Compose implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version") // LiveData implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version") // Lifecycles only (without ViewModel or LiveData) implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version") // Lifecycle utilities for Compose implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version") // Saved state module for ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version") // Annotation processor kapt("androidx.lifecycle:lifecycle-compiler:$lifecycle_version") // alternately - if using Java8, use the following instead of lifecycle-compiler implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version") // optional - helpers for implementing LifecycleOwner in a Service implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version") // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version") // optional - ReactiveStreams support for LiveData implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version") // optional - Test helpers for LiveData testImplementation("androidx.arch.core:core-testing:$arch_version") // optional - Test helpers for Lifecycle runtime testImplementation ("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version") }
জাভা
গ্রোভি
dependencies { def lifecycle_version = "2.8.7" def arch_version = "2.2.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" // Saved state module for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" // Annotation processor annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // alternately - if using Java8, use the following instead of lifecycle-compiler implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" // optional - helpers for implementing LifecycleOwner in a Service implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version" // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version" // optional - ReactiveStreams support for LiveData implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "androidx.arch.core:core-testing:$arch_version" // optional - Test helpers for Lifecycle runtime testImplementation "androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version" }
কোটলিন
dependencies { val lifecycle_version = "2.8.7" val arch_version = "2.2.0" // ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version") // LiveData implementation("androidx.lifecycle:lifecycle-livedata:$lifecycle_version") // Lifecycles only (without ViewModel or LiveData) implementation("androidx.lifecycle:lifecycle-runtime:$lifecycle_version") // Saved state module for ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version") // Annotation processor annotationProcessor("androidx.lifecycle:lifecycle-compiler:$lifecycle_version") // alternately - if using Java8, use the following instead of lifecycle-compiler implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version") // optional - helpers for implementing LifecycleOwner in a Service implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version") // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version") // optional - ReactiveStreams support for LiveData implementation("androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version") // optional - Test helpers for LiveData testImplementation("androidx.arch.core:core-testing:$arch_version") // optional - Test helpers for Lifecycle runtime testImplementation("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ 2.9
সংস্করণ 2.9.0-alpha07
13 নভেম্বর, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha07-এ এই কমিট রয়েছে।
কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
- লাইফসাইকেল
ViewModel SavedState
এখন KMP সামঞ্জস্যপূর্ণ। এটি আপনাকে সাধারণ কোডেSavedStateHandle
ব্যবহার করতে দেয়। ( Ib6394 , b/334076622 )
KotlinX সিরিয়ালাইজেশন সমর্থন
SavedState
1.3.0-alpha05
এ যোগ করা KotlinX সিরিয়ালাইজেশনের সমর্থনের সাথে, আমরা একটিSavedStateHandle
এ@Serializable
ক্লাসগুলিকে সহজে সংরক্ষণ করতে এবং সেই ক্লাসগুলিকে স্বয়ংক্রিয়ভাবে প্রক্রিয়া মৃত্যু এবং বিনোদন জুড়ে পুনরুদ্ধার করার জন্যsaved
, একটি অলস সম্পত্তি প্রতিনিধি প্রবর্তন করেছি। অনুগ্রহ করে মনে রাখবেনsaved
প্রতিনিধি অলস এবংinit
ল্যাম্বডাকে কল করবেন না বা এটি অ্যাক্সেস না করা পর্যন্তSavedStateHandle
এ কিছু সংরক্ষণ করবেন না। ( I47a88 , b/376026744 )@Serializable data class Person(val firstName: String, val lastName: String) class MyViewModel(handle: SavedStateHandle) : ViewModel() { var person by handle.saved { Person("John", "Doe") } fun onPersonChanged(person: Person) { this.person = person } }
এপিআই পরিবর্তন
- একটি
MutableStateFlow
ফেরত দিতেSavedStateHandle
এgetMutableStateFlow
যোগ করুন। এই নতুন ফাংশনটি কী-এক্সক্লুসিভ এবংgetLiveData
সাথে ব্যবহার করা যাবে না। আপনি একই অবস্থা অ্যাক্সেস করতে উভয় ব্যবহার করার চেষ্টা করলে একটি ব্যতিক্রম নিক্ষেপ করা হবে। ( I04a4f , b/375408415 )
সংস্করণ 2.9.0-alpha06
30 অক্টোবর, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha06-এ এই কমিট রয়েছে।
আচরণ পরিবর্তন
-
Lifecycle.DESTROYED
অবস্থাটি টার্মিনাল, এবং এটি থেকে একটিLifecycle
অন্য কোনো রাজ্যে নিয়ে যাওয়ার যে কোনো প্রচেষ্টা এখন একটিIllegalStateException
হিসেবে পরিণত হবে। ( I116c4 , b/370577987 ) -
SavedStateHandle
আর কোনোSavedStateProvider.saveState()
অন্তর্ভুক্ত করে না যেখানে প্রত্যাবর্তিতBundle
খালি থাকে৷ ( I910b5 , b/370577987 )
বাগ ফিক্স
-
Lifecycle.eventFlow
এখন সঠিকভাবে সম্পূর্ণ হয় যখনLifecycle
DESTROYED
( I293b2 , b/374043130 )
সংস্করণ 2.9.0-alpha05
অক্টোবর 16, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha05
কোনো উল্লেখযোগ্য পরিবর্তন ছাড়াই প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha05-এ এই কমিট রয়েছে।
সংস্করণ 2.9.0-alpha04
2 অক্টোবর, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha04-এ এই কমিট রয়েছে।
কোটলিন মাল্টিপ্ল্যাটফর্ম
-
lifecycle-viewmodel-savedstate
মডিউলটি এখনSavedStateHandle
মতো API-এর প্রস্তুতির জন্য KMP সামঞ্জস্যপূর্ণ হওয়ার জন্য কনফিগার করা হয়েছে যা ভবিষ্যতের রিলিজে সাধারণ উত্স সেটে উপলব্ধ করা হবে। ( I503ed , I48764 , b/334076622 )
সংস্করণ 2.9.0-alpha03
সেপ্টেম্বর 18, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha03-এ এই কমিট রয়েছে।
বাগ ফিক্স
- লাইফসাইকেল
2.8.6
থেকে :NullSafeMutableLiveData
Lint ত্রুটি স্মার্ট কাস্টের জন্য সমর্থন উন্নত করেছে, মিথ্যা ইতিবাচক এড়িয়ে গেছে। ( 85fed6 , b/181042665 )
নির্ভরতা আপডেট
- লাইফসাইকেল
2.8.6
থেকে : লাইফসাইকেল রানটাইম কম্পোজ এখন কম্পোজ রানটাইম1.7.1
উপর নির্ভর করে - লাইফসাইকেল রানটাইম এখন প্রোফাইলইনস্টলার
1.4.0
এর উপর নির্ভর করে
সংস্করণ 2.9.0-alpha02
4 সেপ্টেম্বর, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha02-এ এই কমিট রয়েছে।
বাগ ফিক্স
- লাইফসাইকেল
2.8.5
থেকে : অস্পষ্টতার অনুমতি দিতেandroidx.lifecycle.ReportFragment
ProGuard নিয়ম আপডেট করুন। ( ff898e1 )
বাহ্যিক অবদান
-
androidx.compose.ui.platform.LocalLifecycleOwner
কে কমন সোর্স সেটে (KMP) সরান। অবদানের জন্য JetBrains থেকে ইভান Matkov ধন্যবাদ. ( 8cd5d03 ) - লাইফসাইকেল
2.8.5
থেকে : SavedStateHandle.saveable` এক্সটেনশন প্রতিনিধি এখন বাতিলযোগ্য মান সমর্থন করে। অবদানের জন্য ধন্যবাদ রোমান Kalukiewicz. ( 0d78ea6 )
সংস্করণ 2.9.0-alpha01
7 আগস্ট, 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha01-এ এই কমিট রয়েছে।
কোটলিন মাল্টিপ্ল্যাটফর্ম
-
lifecycle-testing
এখন KMP সামঞ্জস্যপূর্ণ। ( IEA41e ) -
linuxArm64
kotlin মাল্টিপ্ল্যাটফর্ম টার্গেটের জন্য সমর্থন যোগ করুন ( I139d3 , b/338268719 )
নতুন বৈশিষ্ট্য
- একটি নতুন
androidx.lifecycle:lifecycle-viewmodel-testing
KMP আর্টিফ্যাক্ট উপলব্ধ রয়েছে যাonCleared
(সমস্ত প্ল্যাটফর্ম) এবংSavedStateHandle
(শুধুমাত্র অ্যান্ড্রয়েড) এর জন্য সমর্থন সহ, বিচ্ছিন্নভাবে ViewModels পরীক্ষা করার জন্য একটিViewModelScenario
ক্লাস প্রদান করে। ( 337f68d , c9b3409 , 9799a95c , b/264602919 ) -
ViewModelProvider
দিয়ে একটিViewModel
তৈরি করা এখন থ্রেড নিরাপদ;@MainThread
টীকাগুলি সরানো হয়েছে। ( ifd978 , b/237006831 )
এপিআই পরিবর্তন
- বেনামী
CreationExtras.Key
অবজেক্ট তৈরিকে সহজ করতেCreationExtras.Key()
ফ্যাক্টরি ফাংশন যোগ করুন। ( I970ee ) -
CreationExtras
এখন কোটলিনে বিষয়বস্তুর ইডিওম্যাটিক ম্যানিপুলেশন সক্ষম করতে মানচিত্রের মতো অপারেটর ওভারলোড অন্তর্ভুক্ত করে৷ এটিCreationExtras
এর সাথেin
,+=
, এবং+
ব্যবহারের অনুমতি দেয়। ( Ib4353 ) -
CreationExtras
এখনequals
,hashCode
এবংtoString
পদ্ধতি প্রয়োগ করে। ( Ib4353 ) -
NewInstanceFactory
এখন JVM ডেস্কটপ এবং অ্যান্ড্রয়েড লক্ষ্যে উপলব্ধ। ( d3d0892 ) - কোটলিন ভাষা সংস্করণ 2.0 ( I39df2 ) এ অন্তর্নিহিত অ্যাপ্লিকেশনটি নিরাপদে প্রকাশ করতে ইনলাইন এক্সটেনশন সম্পত্তি
বাগ ফিক্স
- নতুন প্ল্যাটফর্ম API-এ অ্যাক্সেসের ম্যানুয়াল রূপরেখা সরানো হয়েছে যেহেতু AGP 7.3 বা তার পরে (যেমন R8 সংস্করণ 3.3) এবং AGP 8.1 বা তার পরবর্তী (যেমন D8 সংস্করণ 8.1) ব্যবহার করার সময় R8 ব্যবহার করার সময় এটি স্বয়ংক্রিয়ভাবে API মডেলিংয়ের মাধ্যমে ঘটে। যে সকল ক্লায়েন্ট AGP ব্যবহার করছেন না তাদের D8 সংস্করণ 8.1 বা তার পরবর্তী সংস্করণে আপডেট করার পরামর্শ দেওয়া হচ্ছে। আরো বিস্তারিত জানার জন্য এই নিবন্ধটি দেখুন. ( if6b4c , b/345472586 )
সংস্করণ 2.8
সংস্করণ 2.8.7
30 অক্টোবর, 2024
androidx.lifecycle:lifecycle-*:2.8.7
প্রকাশিত হয়েছে। সংস্করণ 2.8.7-এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
-
androidx.compose.ui.platform.LocalLifecycleOwner
এখন সাধারণ উৎস সেটে (KMP) উপলব্ধ। ( 6a3f5b3 ) -
lifecycle-runtime-compose
:desktop
আর্টিফ্যাক্টগুলি সরানো হয়েছিল এবং-jvmStubs
এবং-linuxx64Stubs
আর্টিফ্যাক্টগুলি যোগ করা হয়েছিল। এই লক্ষ্যগুলির কোনটিই ব্যবহার করার জন্য নয়, তারা জেটব্রেইন রচনার প্রচেষ্টাকে সাহায্য করার জন্য স্থানধারক। ( 6a3f5b3 )
সংস্করণ 2.8.6
সেপ্টেম্বর 18, 2024
androidx.lifecycle:lifecycle-*:2.8.6
প্রকাশিত হয়েছে। সংস্করণ 2.8.6-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
NullSafeMutableLiveData
Lint ত্রুটি মিথ্যা ইতিবাচক এড়িয়ে স্মার্ট কাস্টের জন্য সমর্থন উন্নত করেছে। ( 85fed6 , b/181042665 )
নির্ভরতা আপডেট
- লাইফসাইকেল রানটাইম কম্পোজ এখন কম্পোজ রানটাইম
1.7.1
এর উপর নির্ভর করে
সংস্করণ 2.8.5
4 সেপ্টেম্বর, 2024
androidx.lifecycle:lifecycle-*:2.8.5
প্রকাশিত হয়েছে। সংস্করণ 2.8.5-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- অস্পষ্টতার অনুমতি দিতে
androidx.lifecycle.ReportFragment
ProGuard নিয়ম আপডেট করুন। ( ff898e1 )
বাহ্যিক অবদান
-
SavedStateHandle.saveable
এক্সটেনশন প্রতিনিধি এখন বাতিলযোগ্য মান সমর্থন করে। অবদানের জন্য ধন্যবাদ রোমান Kalukiewicz. ( 0d78ea6 )
সংস্করণ 2.8.4
24 জুলাই, 2024
androidx.lifecycle:lifecycle-*:2.8.4
প্রকাশিত হয়েছে। সংস্করণ 2.8.4-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
-
LiveData.asFlow()
এখন সঠিকভাবে এমন ক্ষেত্রে পরিচালনা করে যেখানেLiveData
ইতিমধ্যেই সেট করা একটি মান পাওয়ার পরে প্রত্যাবর্তিত ফ্লো অবিলম্বে সম্পন্ন হয় (উদাহরণস্বরূপ,take(1)
ব্যবহার করার সময়)। ( I9c566 ) -
Lifecycle*Effect
কমপ্লিশন এখন ইমপোটেন্ট (অর্থাৎ, যদি লাইফসাইকেল বন্ধ হওয়ার কারণেonStopOrDispose
কল করা হয়, তাহলে লাইফসাইকেল আবারSTARTED
এ ফিরে না যাওয়া পর্যন্ত নিষ্পত্তির পরে এটিকে দ্বিতীয়বার বলা হবে না)। ( I5f607 , b/352364595 )
সংস্করণ 2.8.3
জুলাই 1, 2024
androidx.lifecycle:lifecycle-*:2.8.3
প্রকাশিত হয়েছে। সংস্করণ 2.8.3-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- লাইফসাইকেল 2.8 এর কম্পোজ 1.6.0 এর সাথে পিছিয়ে থাকা সামঞ্জস্যের সাথে একটি সমস্যা সমাধান করা হয়েছে এবং কোড সঙ্কুচিত করার সময় কম ব্যবহার করা হয়েছে। ( aosp/3133056 , b/346808608 )
সংস্করণ 2.8.2
জুন 12, 2024
androidx.lifecycle:lifecycle-*:2.8.2
প্রকাশিত হয়েছে। সংস্করণ 2.8.2-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- Fixed
CompositionLocal LocalLifecycleOwner not present
- আপনি এখন লাইফসাইকেল 2.8.2 ব্যবহার করতে পারেন কম্পোজের যেকোনো সংস্করণের সাথে কোনো সমাধানের প্রয়োজন ছাড়াই। ( aosp/3105647 , b/336842920 ) -
compileOnly
লাইফসাইকেল নির্ভরতাগুলির পূর্ববর্তী সংস্করণগুলিকে 2.8+ সংস্করণের সাথে মিশ্রিত করার সময়ViewModelProvider
আর ক্র্যাশ হবে না, LeakCanary এর মতো লাইব্রেরিগুলির সমস্যাগুলি সমাধান করে৷ ( I80383 , b/341792251 )
সংস্করণ 2.8.1
29 মে, 2024
androidx.lifecycle:lifecycle-*:2.8.1
প্রকাশিত হয়েছে। সংস্করণ 2.8.1-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
-
lifecycle-viewmodel-compose
এখন শুধুমাত্রcompose-runtime
উপর একটি সাধারণ নির্ভরতা রয়েছে, এটিcompose-ui
উপর সাধারণ নির্ভরতা দূর করে। অ্যান্ড্রয়েড আর্টিফ্যাক্ট সামঞ্জস্যের জন্য তারcompose-ui
ধরে রাখে। ( aosp/3079334 , b/339562627 ) - সম্পত্তি প্রতিনিধিদের ব্যবহার করে
ViewModel
এরsaveable
ইন্টিগ্রেশন এখন স্বয়ংক্রিয়-উত্পন্ন কী-এর অংশ হিসাবে ক্লাসের নাম ব্যবহার করে, যদি একাধিক ক্লাস একইSavedStateHandle
ব্যবহার করে তবে বিরোধ এড়িয়ে যায়। ( aosp/3063463 )
সংস্করণ 2.8.0
14 মে, 2024
androidx.lifecycle:lifecycle-*:2.8.0
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-এ এই কমিট রয়েছে।
2.7.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
-
LocalLifecycleOwner
কম্পোজ UI থেকেlifecycle-runtime-compose
স্থানান্তরিত করা হয়েছে যাতে এর কম্পোজ-ভিত্তিক হেল্পার APIগুলি রচনা UI এর বাইরে ব্যবহার করা যেতে পারে। -
lifecycle-runtime-compose
আর্টিফ্যাক্টে এখনdropUnlessResumed
এবংdropUnlessStarted
API রয়েছে যা আপনাকে ক্লিক বা অন্যান্য ইভেন্টগুলি ড্রপ করার অনুমতি দেয় যাLifecycleOwner
প্রদত্তLifecycle.State
নীচে নেমে যাওয়ার পরেও ঘটে। উদাহরণস্বরূপ, অন্য স্ক্রিনে পরিবর্তন শুরু হওয়ার পরে ক্লিক ইভেন্টগুলি পরিচালনা করা এড়াতে এটি নেভিগেশন রচনার সাথে ব্যবহার করা যেতে পারে:onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) }
ViewModel.viewModelScope
এখন একটি ওভাররিডেবল কনস্ট্রাক্টর প্যারামিটার, যা আপনাকে আপনার নিজস্ব প্রেরক এবংSupervisorJob()
ইনজেকশন করতে বাrunTest
মধ্যে উপলব্ধbackgroundScope
ব্যবহার করে ডিফল্ট ওভাররাইড করতে দেয়। ( I2817c , b/264598574 )class MyViewModel( // Make Dispatchers.Main the default, rather than Dispatchers.Main.immediate viewModelScope: CoroutineScope = Dispatchers.Main + SupervisorJob() ) : ViewModel(viewModelScope) { // Use viewModelScope as before, without any code changes } // Allows overriding the viewModelScope in a test fun Test() = runTest { val viewModel = MyViewModel(backgroundScope) }
ViewModel
কোটলিনে পুনরায় লেখা হয়েছে এবং এখনCloseable
এর পরিবর্তেAutoClosable
ব্যবহার করে। এটি এখন একটিkey
দিয়েAutoCloseable
অবজেক্ট যোগ করা সমর্থন করে যাgetCloseable()
মাধ্যমে সেগুলি পুনরুদ্ধার করতে দেয়।একটি কী ছাড়া
LifecycleStartEffect
এবংLifecycleResumeEffect
কল করা এখন একটি ত্রুটি,DisposableEffect
API-এর মতো একই নিয়ম অনুসরণ করে যা এই APIগুলি মিরর করে৷LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData)
LiveData.toPublisher(lifecycleOwner)
এর পক্ষে অবহেলিত।lifecycle-livedata-core-ktx
কোটলিন এক্সটেনশনগুলি এখনlifecycle-livedata-core
মডিউলে সরানো হয়েছে।অনেক মিথ্যা ইতিবাচক এড়াতে
NullSafeMutableLiveData
রিফ্যাক্টর করা হয়েছে।
লাইফসাইকেল কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
Lifecycle
, LifecycleOwner
, LifecycleObserver
, Lifecycle.State
, Lifecycle.Event
, এবং LifecycleRegistry
এর মূল লাইফসাইকেল APIগুলি এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ আর্টিফ্যাক্টগুলিতে পাঠানো হয়েছে৷
শিল্পকর্ম প্রভাবিত:
-
lifecycle-common
বেশিরভাগ API-কেcommon
নিয়ে যায় এবং অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS সমর্থন করে। -
lifecycle-runtime
বেশিরভাগ API-কেcommon
দিকে নিয়ে যায় এবং অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS সমর্থন করে। -
lifecycle-runtime-ktx
এখন খালি, সমস্ত API গুলিকেlifecycle-runtime
সরানো হয়েছে। -
lifecycle-runtime-compose
সমস্ত API-কেcommon
-এ নিয়ে যায় এবংandroidx.compose
এর মাল্টিপ্ল্যাটফর্ম সমর্থনের সাথে মিলে একটি Android আর্টিফ্যাক্ট পাঠায়।
ভিউ মডেল কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
lifecycle-viewmodel
আর্টিফ্যাক্ট এবং এপিআই যেমন ViewModel
, ViewModelStore
, ViewModelStoreOwner
, এবং ViewModelProvider
এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ আর্টিফ্যাক্টগুলিতে পাঠানো হয়েছে৷
এই পরিবর্তনকে সামঞ্জস্য করার জন্য, ViewModelProvider
এ যে পদ্ধতিগুলি একটি java.lang.Class<T>
নিয়েছিল সেগুলির এখন একটি সমতুল্য পদ্ধতি রয়েছে যা একটি kotlin.reflect.KClass<T>
নেয়।
অ্যান্ড্রয়েডে বাইনারি সামঞ্জস্য বজায় রাখা হয়েছে, তবে সাধারণ API পৃষ্ঠের সাথে অ্যান্ড্রয়েড এপিআই পৃষ্ঠের তুলনা করার সময় কয়েকটি উল্লেখযোগ্য পরিবর্তন রয়েছে:
- একটি
ViewModelProvider
ইন্সট্যান্স তৈরি করা এখনViewModelProvider.create()
পদ্ধতির মাধ্যমে সরাসরি এর কনস্ট্রাক্টরকে কল করার পরিবর্তে করা হয়। -
ViewModelProvider.NewInstanceFactory
এবংViewModelProvider.AndroidViewModelFactory
শুধুমাত্র Android এ উপলব্ধ৷- কাস্টম ফ্যাক্টরিগুলিকে
ViewModelProvider.Factory
থেকে প্রসারিত করার জন্য সুপারিশ করা হয় এবং একটিCreationExtras
লাগে বাviewModelFactory
কোটলিন ডিএসএল ব্যবহার করেcreate
পদ্ধতি ব্যবহার করুন৷
- কাস্টম ফ্যাক্টরিগুলিকে
- নন-JVM প্ল্যাটফর্মে কাস্টম ফ্যাক্টরি ছাড়া
ViewModelProvider
ব্যবহার করলে একটিUnsupportedOperationException
হবে। JVM প্ল্যাটফর্মগুলিতে, নো-আর্গস ভিউমডেল কনস্ট্রাক্টর ব্যবহার করে সামঞ্জস্য রক্ষা করা হয় যদি একটি কাস্টম কারখানা সরবরাহ করা না হয়। -
viewModelScope
প্ল্যাটফর্মের একটিEmptyCoroutineContext
এ পড়বে যেখানেDispatchers.Main
উপলব্ধ নেই (যেমন, Linux)।
শিল্পকর্ম প্রভাবিত:
-
lifecycle-viewmodel
বেশিরভাগ এপিআইকেcommon
নিয়ে যায় এবং অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS সমর্থন করে। -
lifecycle-viewmodel-ktx
এখন খালি, সমস্ত API গুলিকেlifecycle-viewmodel
স্থানান্তরিত করা হয়েছে। -
lifecycle-viewmodel-compose
সমস্ত API-কেcommon
-এ নিয়ে যায় এবংandroidx.compose
এর মাল্টিপ্ল্যাটফর্ম সমর্থনের সাথে মিলে একটি Android আর্টিফ্যাক্ট পাঠায়।
আচরণ পরিবর্তন
-
InitializerViewModelFactory
(viewModelFactory
বিল্ডার ফাংশন সহ) এখন একটিIllegalArgumentException
নিক্ষেপ করবে যদি একই ক্ল্যাজ সহ একটিinitializer
clazz: KClass<VM : ViewModel>
ইতিমধ্যেই যোগ করা হয়ে থাকে। ( IC3a36 )
পরিচিত সমস্যা
-
lifecycle-*:2.8.0
জন্য ন্যূনতম 1.7.0-alpha05 ( b/336842920 ) এর কম্পোজ সংস্করণ প্রয়োজন।
সংস্করণ 2.8.0-rc01
1 মে, 2024
androidx.lifecycle:lifecycle-*:2.8.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
lifecycle-common
ক্লাসের জন্য বেসলাইন প্রোফাইল সঠিকভাবে প্যাকেজ করা হয়নি। এগুলি এখনlifecycle-runtime
AAR-এ প্যাকেজ করা হয়েছে৷ ( aosp/3038274 , b/322382422 ) - একটি ভিউমডেলের সাথে সংযুক্ত
AutoCloseable
দৃষ্টান্তগুলি কীভাবে সাফ করা হয় তাতে একটি অনিচ্ছাকৃত ক্রম পরিবর্তনের স্থির করা হয়েছে -addCloseable(String, AutoCloseable)
এর আগের ক্রম , তারপরaddClosable(AutoCloseable)
, তারপরonCleared()
পুনরুদ্ধার করা হয়েছে৷ ( aosp/3041632 ) - নেটিভ এবং JVM ডেস্কটপ পরিবেশের জন্য
viewModelScope
জন্য ডিফল্ট সৃষ্টি আচরণ উন্নত করুন। ( aosp/3039221 )
বাহ্যিক অবদান
- ধন্যবাদ ভিক্টর ক্রপ JVM ডেস্কটপে প্রধান থ্রেডের জন্য চেকিং উন্নত করার জন্য। ( aosp/3037116 )
সংস্করণ 2.8.0-beta01
এপ্রিল 17, 2024
androidx.lifecycle:lifecycle-*:2.8.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-beta01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
lifecycle-runtime-compose
আর্টিফ্যাক্টটি এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ, এটির কোডকেcommon
-এ স্থানান্তরিত করে এবংandroidx.compose
এর মাল্টিপ্ল্যাটফর্ম সমর্থনের সাথে মিলে একটি Android আর্টিফ্যাক্ট পাঠায়। ( if7a71 , I4f4a0 , b/331769623 )
সংস্করণ 2.8.0-alpha04
3 এপ্রিল, 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha04-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
lifecycle-viewmodel-compose
আর্টিফ্যাক্টটি এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ, এটির কোডকেcommon
-এ স্থানান্তরিত করে এবংandroidx.compose
এর মাল্টিপ্ল্যাটফর্ম সমর্থনের সাথে মিলে একটি Android আর্টিফ্যাক্ট পাঠায়। এই পরিবর্তনকে সামঞ্জস্য করার জন্য, কম্পোজেবলviewModel
পদ্ধতিটি এখন একটিjava.lang.Class
ছাড়াও একটিKClass
গ্রহণ করে। ( b/330323282 )
বাগ ফিক্স
- অনেক মিথ্যা ইতিবাচক এড়াতে
NullSafeMutableLiveData
রিফ্যাক্টর করা হয়েছে। ( I2d8c1 , Iafb18 , I03463 , I7ecef )
নির্ভরতা আপডেট
-
lifecycle-viewmodel-compose
আর্টিফ্যাক্ট এখন কম্পোজ 1.6.0 এর উপর নির্ভর করে। - লাইফসাইকেল এখন প্রোফাইল ইনস্টলার 1.3.1 এর উপর নির্ভর করে।
সংস্করণ 2.8.0-alpha03
20 মার্চ, 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha03-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
ViewModel.viewModelScope
এখন একটি ওভাররিডেবল কনস্ট্রাক্টর প্যারামিটার, যা আপনাকে আপনার নিজস্ব প্রেরক এবংSupervisorJob()
ইনজেকশন করতে বাrunTest
মধ্যে উপলব্ধbackgroundScope
ব্যবহার করে ডিফল্ট ওভাররাইড করতে দেয়। ( I2817c , b/264598574 )class MyViewModel( // Make Dispatchers.Main the default, rather than Dispatchers.Main.immediate viewModelScope: CoroutineScope = Dispatchers.Main + SupervisorJob() ) : ViewModel(viewModelScope) { // Use viewModelScope as before, without any code changes } // Allows overriding the viewModelScope in a test fun Test() = runTest { val viewModel = MyViewModel(backgroundScope) }
কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
lifecycle-viewmodel
আর্টিফ্যাক্ট এবং এপিআই যেমন ViewModel
, ViewModelStore
, ViewModelStoreOwner
, এবং ViewModelProvider
এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ আর্টিফ্যাক্টগুলিতে পাঠানো হয়েছে৷ ( b/214568825 )
এই পরিবর্তনকে সামঞ্জস্য করার জন্য, ViewModelProvider
এ যে পদ্ধতিগুলি একটি java.lang.Class<T>
নিয়েছিল সেগুলির এখন একটি সমতুল্য পদ্ধতি রয়েছে যা একটি kotlin.reflect.KClass<T>
নেয়।
অ্যান্ড্রয়েডে বাইনারি সামঞ্জস্য বজায় রাখা হয়েছে, তবে সাধারণ API পৃষ্ঠের সাথে অ্যান্ড্রয়েড এপিআই পৃষ্ঠের তুলনা করার সময় কয়েকটি উল্লেখযোগ্য পরিবর্তন রয়েছে:
- একটি
ViewModelProvider
ইন্সট্যান্স তৈরি করা এখনViewModelProvider.create()
পদ্ধতির মাধ্যমে সরাসরি এর কনস্ট্রাক্টরকে কল করার পরিবর্তে করা হয়। -
ViewModelProvider.NewInstanceFactory
এবংViewModelProvider.AndroidViewModelFactory
শুধুমাত্র Android এ উপলব্ধ৷- কাস্টম ফ্যাক্টরিগুলিকে
ViewModelProvider.Factory
থেকে প্রসারিত করার জন্য সুপারিশ করা হয় এবং একটিCreationExtras
লাগে বাviewModelFactory
কোটলিন ডিএসএল ব্যবহার করেcreate
পদ্ধতি ব্যবহার করুন৷
- কাস্টম ফ্যাক্টরিগুলিকে
- নন-JVM প্ল্যাটফর্মে কাস্টম ফ্যাক্টরি ছাড়া
ViewModelProvider
ব্যবহার করলে একটিUnsupportedOperationException
হবে। JVM প্ল্যাটফর্মগুলিতে, নো-আর্গস ভিউমডেল কনস্ট্রাক্টর ব্যবহার করে সামঞ্জস্য রক্ষা করা হয় যদি একটি কাস্টম কারখানা সরবরাহ করা না হয়। -
viewModelScope
প্ল্যাটফর্মের একটিEmptyCoroutineContext
এ পড়বে যেখানেDispatchers.Main
উপলব্ধ নেই (যেমন, Linux)।
আচরণ পরিবর্তন
-
InitializerViewModelFactory
(viewModelFactory
বিল্ডার ফাংশন সহ) এখন একটিIllegalArgumentException
নিক্ষেপ করবে যদি একই ক্ল্যাজ সহ একটিinitializer
clazz: KClass<VM : ViewModel>
ইতিমধ্যেই যোগ করা হয়ে থাকে। ( IC3a36 )
বাগ ফিক্স
-
ViewModel.getCloseable
এখন সদৃশ কীগুলি পরিচালনা করে: যদিkey
সাথে ইতিমধ্যেই একটিAutoCloseable
সংস্থান যুক্ত থাকে, তবে পুরানো সংস্থানটি প্রতিস্থাপন করা হবে এবং অবিলম্বে বন্ধ করা হবে৷ ( Ibeb67 ) - একটি
ViewModel
এরviewModelScope
অ্যাক্সেস করা এখন থ্রেড নিরাপদ। ( if4766 , b/322407038 )
বাহ্যিক অবদান
-
LocalLifecycleOwner
কম্পোজ UI থেকে লাইফসাইকেল-রানটাইম-কম্পোজে স্থানান্তরিত হয়েছে যাতে এর রচনা-ভিত্তিক সহায়ক APIগুলি রচনা UI এর বাইরে ব্যবহার করা যেতে পারে। অবদানের জন্য ধন্যবাদ Jake Wharton. ( I6c41b , b/328263448 )
সংস্করণ 2.8.0-alpha02
21 ফেব্রুয়ারি, 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
dropUnlessResumed
এবংdropUnlessStarted
API যোগ করা হয়েছে যা আপনাকে ক্লিক বা অন্যান্য ইভেন্টগুলি ড্রপ করতে দেয় যাLifecycleOwner
প্রদত্তLifecycle.State
এর নীচে নেমে যাওয়ার পরেও ঘটে। উদাহরণস্বরূপ, অন্য স্ক্রিনে পরিবর্তন শুরু হওয়ার পরে ক্লিক ইভেন্টগুলি পরিচালনা এড়াতে এটি নেভিগেশন রচনার সাথে ব্যবহার করা যেতে পারে:onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) }
( Icba83 , b/317230685 )
কোটলিন রূপান্তর
-
ViewModel
এখন কোটলিনে লেখা হয়েছে ( I16f26 , b/214568825 ) -
lifecycle-viewmodel-ktx
kotlin এক্সটেনশনগুলি এখন বেস লাইফসাইকেল মডিউলে সরানো হয়েছে। ( Id787b , b/274800183 ) -
lifecycle-runtime-ktx
কোটলিন এক্সটেনশনগুলি এখন বেস লাইফসাইকেল মডিউলে সরানো হয়েছে। ( Ic3686 , b/274800183 ) -
lifecycle-livedata-core-ktx
কোটলিন এক্সটেনশনগুলি এখন বেস লাইফসাইকেল মডিউলে সরানো হয়েছে। ( I54a3d , b/274800183 )
কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
-
Lifecycle
,LifecycleOwner
,LifecycleObserver
,Lifecycle.State
,Lifecycle.Event
, এবংLifecycleRegistry
এর মূল লাইফসাইকেল APIগুলি এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ আর্টিফ্যাক্টগুলিতে পাঠানো হয়েছে৷ ( b/317249252 )
এপিআই পরিবর্তন
- একটি কী ছাড়া
LifecycleStartEffect
এবংLifecycleResumeEffect
কল করা এখন একটি ত্রুটি,DisposableEffect
API-এর মতো একই নিয়ম অনুসরণ করে যা এই APIগুলি মিরর করে৷ ( Ib0e0c , b/323518079 ) -
ViewModel
এখনCloseable
এর পরিবর্তেAutoCloseable
ব্যবহার করে। এটি একটি পশ্চাদমুখী সামঞ্জস্যপূর্ণ পরিবর্তন। ( I27f8e , b/214568825 ) -
LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData)
LiveData.toPublisher(lifecycleOwner)
এর পক্ষে অবহেলিত। ( Iabe29 , b/262623005 )
বাহ্যিক অবদান
- লাইফসাইকেলকে কোটলিন মাল্টিপ্ল্যাটফর্মে নিয়ে যাওয়ার জন্য Jetbrains থেকে Ivan Matkov কে ধন্যবাদ। ( aosp/2926690 , I0c5ac , If445d )
সংস্করণ 2.8.0-alpha01
24 জানুয়ারী, 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha01 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
ViewModel
এখন একটিkey
দিয়েCloseable
অবজেক্ট যোগ করা সমর্থন করে যাgetCloseable()
মাধ্যমে সেগুলি পুনরুদ্ধার করতে দেয়। ( I3cf63 )
সংস্করণ 2.7
সংস্করণ 2.7.0
জানুয়ারী 10, 2024
androidx.lifecycle:lifecycle-*:2.7.0
প্রকাশিত হয়েছে। সংস্করণ 2.7.0 এই কমিট ধারণ করে.
2.6.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
-
TestLifecycleOwner
এখন একটি স্থগিত ফাংশনsetCurrentState()
অন্তর্ভুক্ত করে যা নিশ্চিত করে যে রাজ্যের পরিবর্তন এবং সমস্তLifecycleObserver
কলব্যাক ফিরে আসার আগে সম্পূর্ণ হয়েছে। উল্লেখযোগ্যভাবে,currentState
প্রপার্টি সরাসরি সেট করার বিপরীতে, এটিrunBlocking
ব্যবহার করে না, এটিrunTest
দ্বারা প্রদত্ত একটি কোরোটিনের মধ্যে ব্যবহার করা নিরাপদ করে তোলে। -
map
এবংswitchMap
LiveData
এক্সটেনশনগুলি এখনdistinctUntilChanged
এর আচরণকে মিরর করে - যদিLiveData
একটিvalue
সেট থাকে, তাহলেmap
/switchMap
ফাংশনটি অবিলম্বে ফিরে আসাLiveData
এরvalue
পূরণ করতে কল করা হবে। এটি নিশ্চিত করে যে প্রাথমিক মানটি প্রথম রচনার অংশ হিসাবে সেট করা হবে (যখনobserveAsState()
এর সাথে ব্যবহার করা হয়), তবে পর্যবেক্ষণ আচরণ পরিবর্তন করে না - আপনিLiveData
পর্যবেক্ষণ করা শুরু করলেই উৎসLiveData
থেকে আপডেট মানগুলি এখনও প্রযোজ্য হবে। - এই রিলিজটি একটি সমস্যার সমাধান করে যেখানে
SavedStateHandle
প্রক্রিয়া মৃত্যু এবং বিনোদনের পরে কাস্টমParcelable
ক্লাসগুলি সঠিকভাবে পুনরুদ্ধার করবে না। Android ফ্রেমওয়ার্ক দ্বারা হারিয়ে যাওয়া টাইপ তথ্যের কারণে, কাস্টম পার্সেবলের অ্যারেগুলির জন্য অতিরিক্ত কাজ প্রয়োজন (ম্যানুয়ালি সঠিক ধরণের একটি টাইপ করা অ্যারে তৈরি করা) এবংget
,getLiveData
, এবংgetStateFlow
এর ডকুমেন্টেশন এখন এই সীমাবদ্ধতাটিকে বিশেষভাবে আউট করে৷ -
LifecycleObserver
এর সাথে যুক্ত প্রোগার্ড রাখার নিয়মগুলি সরিয়ে দেওয়া হয়েছে। এর মানে হল যে প্রগার্ডেড কোড যেগুলি প্রতিফলনের মাধ্যমে API ব্যবহার করতে চায় (যেমন দীর্ঘদিন থেকে অবহেলিত@OnLifecycleEvent
টীকা ব্যবহার করে) তাদের নির্দিষ্ট ব্যবহারের ক্ষেত্রে তাদের নিজস্ব রাখার নিয়ম প্রদান করতে হবে।
জীবনচক্র ইভেন্ট পর্যবেক্ষণযোগ্যতা
- একটি
LifecycleEventObserver
ব্যবহার করার বিকল্প হিসেবে, আপনি এখনLifecycle.asFlow()
এক্সটেনশন পদ্ধতির মাধ্যমেLifecycle.Event
এর একটিFlow
পর্যবেক্ষণ করতে পারেন। - Jetpack রচনা ব্যবহারকারীরা এখন
LifecycleEventEffect
ব্যবহার করেLifecycle.Event
এর উপর ভিত্তি করে কম্পোজ পার্শ্বপ্রতিক্রিয়া চালাতে পারবেন।
@Composable
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
LifecycleEventEffect(Lifecycle.Event.ON_RESUME) {
viewModel.refreshData()
}
// …
}
- Jetpack Compose ব্যবহারকারীরা
LifecycleStartEffect
এবংLifecycleResumeEffect
ব্যবহার করে জোড়া ইভেন্টগুলি পরিচালনা করতে পারে - যথাক্রমে থামানো এবং বিরতিতে পুনরায় শুরু করা হয়েছে। এই এপিআইDisposableEffect
পাওয়া একটিকে মিরর করে এবং সেই ক্ষেত্রে উপযুক্ত যেখানে অবস্থার উপরে যাওয়ার সময় যে পরিবর্তন করা হচ্ছে তা নিচের দিকে যাওয়ার সময় বিপরীত করা প্রয়োজন।
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
LifecycleStartEffect(viewModel) {
val timeTracking = viewModel.startTrackingTimeOnScreen()
onStopOrDispose {
timeTracking.stopTrackingTimeOnScreen()
}
}
// …
}
আরও তথ্যের জন্য জীবনচক্র ইভেন্টগুলিতে রান কোড দেখুন।
জীবনচক্র রাষ্ট্র পর্যবেক্ষণযোগ্যতা
- বর্তমান
Lifecycle.State
এখনLifecycle.currentStateFlow
প্রপার্টির মাধ্যমে পর্যবেক্ষণ করা যেতে পারে, যা একটিStateFlow
প্রদান করে যেখানেvalue
বর্তমানLifecycle.State
। - Jetpack রচনা ব্যবহারকারীরা
Lifecycle.currentStateAsState()
এক্সটেনশনটি সরাসরিLifecycle.State
কে ComposeState
হিসাবে প্রকাশ করতে ব্যবহার করতে পারেন। এটিlifecycle.currentStateFlow.collectAsState()
এর সমতুল্য (এবং একটি ছোট বিকল্প)।
আরও তথ্যের জন্য প্রবাহ সহ জীবনচক্রের অবস্থা সংগ্রহ করুন দেখুন।
সংস্করণ 2.7.0-rc02
13 ডিসেম্বর, 2023
androidx.lifecycle:lifecycle-*:2.7.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-rc02 এই কমিট ধারণ করে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
SavedStateHandle
প্রক্রিয়া মৃত্যু এবং বিনোদনের পরে কাস্টমParcelable
ক্লাসগুলি সঠিকভাবে পুনরুদ্ধার করবে না। Android ফ্রেমওয়ার্ক দ্বারা হারিয়ে যাওয়া টাইপ তথ্যের কারণে, কাস্টম পার্সেবলের অ্যারেগুলির জন্য অতিরিক্ত কাজ প্রয়োজন (ম্যানুয়ালি সঠিক ধরণের একটি টাইপ করা অ্যারে তৈরি করা) এবংget
,getLiveData
, এবংgetStateFlow
এর ডকুমেন্টেশন এখন এই সীমাবদ্ধতাটিকে বিশেষভাবে আউট করে৷ ( I0b55a )
সংস্করণ 2.7.0-rc01
15 নভেম্বর, 2023
androidx.lifecycle:lifecycle-*:2.7.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
LifecycleStartEffect
এবংLifecycleResumeEffect
এখন সঠিকভাবে নিষ্পত্তি করুন এবং যদিLifecycleOwner
পরিবর্তন করা হয় তাহলে প্রভাব ব্লকটি পুনরায় তৈরি করুন। ( IA25c6 )
সংস্করণ 2.7.0-beta01
নভেম্বর 1, 2023
androidx.lifecycle:lifecycle-*:2.7.0-beta01
কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 2.7.0-beta01-এ এই কমিট রয়েছে।
- একটি বিটা সংস্করণ বাম্প, এই রিলিজ সংস্করণে কোন বড় পরিবর্তন নেই।
সংস্করণ 2.7.0-alpha03
18 অক্টোবর, 2023
androidx.lifecycle:lifecycle-*:2.7.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha03 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
lifecycle-runtime-testing
এখন একটি নতুন লিন্ট চেক রয়েছে যাতেLifecycle.State
সেট করা না হয়।TestLifecycleOwner
মালিকের অবস্থা একটি করুটিনের ভিতরে থাকা অবস্থায়currentState
ফিল্ড ব্যবহার করে। লিন্ট চেক এখন সাসপেন্ডিংsetCurrentState
পরামর্শ দেয় যা অবরুদ্ধ না করেইLifecycle.State
সেট করার অনুমতি দেয়। ( Icf728 , b/297880630 )
বাগ ফিক্স
-
LiveData.switchMap
এর সাথে একটি সমস্যা সমাধান করা হয়েছে যেখানে প্রাথমিক কল এবং পরবর্তী কল উভয় ক্ষেত্রেই একইLiveData
দৃষ্টান্ত ফেরত দিলেLiveData
দৃষ্টান্তকে উৎস হিসেবে যোগ করা থেকে বাধা দেবে। ( Ibedcba7 )
সংস্করণ 2.7.0-alpha02
6 সেপ্টেম্বর, 2023
androidx.lifecycle:lifecycle-*:2.7.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
TestLifecycleOwner
এখন সাসপেন্ডিং ফাংশনsetCurrentState()
অন্তর্ভুক্ত রয়েছে যাতে ব্যবহারকারীদেরrunTest
দ্বারা প্রদত্ত একটি কর্উটিনের মধ্যে থেকেTestLifecycleOwner
ব্যবহার করার বিকল্প দেয়৷ ( I329de , b/259344129 )
এপিআই পরিবর্তন
-
lifecycle-livedata-ktx
মডিউল থেকে সমস্ত ফাইল প্রধানlifecycle-livedata
মডিউলে সরানো হয়েছে। ( I10c6f , b/274800183 )
আচরণ পরিবর্তন
-
LiveData.map()
এবংLiveData.switchMap()
এক্সটেনশনগুলি এখন প্রত্যাবর্তিতLiveData
value
সেট করে যদি পূর্ববর্তীLiveData
একটি মান সেট করা থাকে, এটি নিশ্চিত করে যে জেটপ্যাক কম্পোজে প্রাপ্ত লাইভডেটা ব্যবহার করে প্রাথমিক রচনায় সঠিক অবস্থা রয়েছে। . ( I91d2b , b/269479952 ) -
ViewModel
এরaddCloseable()
এখন অবিলম্বেCloseable
বন্ধ করে দেয় যদিViewModel
ইতিমধ্যেইonCleared()
এ একটি কল পেয়ে থাকে। ( I4712e , b/280294730 )
বাগ ফিক্স
- লাইফসাইকেল
2.6.2
থেকে: একটি সমস্যা সমাধান করা হয়েছে যেখানে স্টেট পুনরুদ্ধার করা হলে প্রক্রিয়া মৃত্যুর পরেSavedStateHandle
সঠিকভাবে পুনরুদ্ধার করা হবে না,save()
প্রকৃতপক্ষে প্যারেন্টSavedStateRegistry
এ স্টেট সেভ না করেই কল করা হয়েছিল, এবং তারপর স্টেট আবার পুনরুদ্ধার করা হয়েছিল। এটিrememberSaveable
এবং নেভিগেশন রচনারNavHost
এর মধ্যে মিথস্ক্রিয়া ঠিক করে। ( aosp/2729289 )
সংস্করণ 2.7.0-alpha01
জুলাই 26, 2023
androidx.lifecycle:lifecycle-*:2.7.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
Lifecycle.State
এখনLifecycle.currentStateFlow
এর মাধ্যমে রচনা-পর্যবেক্ষণযোগ্য, যা একটিStateFlow
প্রদান করে যেখানেvalue
বর্তমানLifecycle.State
। ( Ib212d , b/209684871 ) -
Lifecycle.Event
s এখনLifecycle.asFlow().
এর সাথে একটিFlow
হিসাবে পর্যবেক্ষণ করা যেতে পারে। ( if2c0f , b/176311030 ) -
Lifecycle.Event.ON_RESUME
এবংLifecycle.Event.ON_PAUSE
ইভেন্ট কলব্যাক উভয়ের উপর ভিত্তি করে ComposeSideEffect
চালানোর জন্যLifecycleResumeEffect
API যোগ করা হয়েছে। ( I60386 , b/235529345 ) -
LifecycleStartEffect
API যোগ করা হয়েছেLifecycle.Event.ON_START
এবংLifecycle.Event.ON_STOP
ইভেন্ট কলব্যাকের উপর ভিত্তি করে কম্পোজSideEffect
চালানোর জন্য। ( I5a8d1 , b/235529345 ) -
Lifecycle.Event
এর উপর ভিত্তি করে ComposeSideEffect
চালানোর জন্যLifecycleEventEffect
API যোগ করা হয়েছে। ( Ic9794 , b/235529345 ) -
Lifecycle.collectAsState()
এক্সটেনশন যোগ করা হয়েছে সরাসরিLifecycle.State
কে ComposeState
হিসেবে প্রকাশ করতে। এটিlifecycle.currentStateFlow.collectAsState()
এর সমতুল্য (এবং একটি ছোট বিকল্প)। ( I11015 , b/235529345 )
বাগ ফিক্স
-
LiveData.distinctUntilChanged()
এক্সটেনশনটি এখন প্রত্যাবর্তিতLiveData
এরvalue
সেট করে যদি পূর্ববর্তীLiveData
এর উপর একটি মান সেট করা থাকে। এটি পর্যবেক্ষণ আচরণ পরিবর্তন করে না - উৎসLiveData
থেকে আপডেট করা মানগুলি এখনও প্রযোজ্য হবে যখন আপনিdistinctUntilChanged()
থেকে ফিরে আসাLiveData
পর্যবেক্ষণ করা শুরু করবেন। ( Ib482f ) -
LifecycleObserver
এর সাথে যুক্ত প্রোগার্ড রাখার নিয়মগুলি সরিয়ে দেওয়া হয়েছে। এর মানে হল যে প্রগার্ডেড কোড যা প্রতিফলনের মাধ্যমে API ব্যবহার করতে চায় তাদের নির্দিষ্ট ব্যবহারের ক্ষেত্রে তাদের নিজস্ব রাখা নিয়ম প্রদান করতে হবে। ( IA12fd )
সংস্করণ 2.6
সংস্করণ 2.6.2
6 সেপ্টেম্বর, 2023
androidx.lifecycle:lifecycle-*:2.6.2
প্রকাশিত হয়েছে। সংস্করণ 2.6.2-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
SavedStateHandle
সঠিকভাবে প্রক্রিয়া মৃত্যুর পরে পুনরুদ্ধার করা হবে না যদি স্টেট পুনরুদ্ধার করা হয়,save()
প্রকৃতপক্ষে প্যারেন্টSavedStateRegistry
এ স্টেট সেভ না করেই কল করা হয়েছিল, এবং তারপর স্টেট আবার পুনরুদ্ধার করা হয়েছিল। এটিrememberSaveable
এবং নেভিগেশন রচনারNavHost
এর মধ্যে মিথস্ক্রিয়া ঠিক করে। ( aosp/2729289 )
সংস্করণ 2.6.1
22 মার্চ, 2023
androidx.lifecycle:lifecycle-*:2.6.1
প্রকাশিত হয়েছে। সংস্করণ 2.6.1-এ এই কমিট রয়েছে।
নির্ভরতা আপডেট
-
lifecycle-viewmodel-savedstate
এখন SavedState1.2.1
উপর নির্ভর করে। ( cd7251 ) - জীবনচক্র এখন প্রোফাইলইনস্টলার
1.3.0
এর উপর নির্ভর করে। ( f9d30b )
সংস্করণ 2.6.0
8 মার্চ, 2023
androidx.lifecycle:lifecycle-*:2.6.0
প্রকাশিত হয়েছে। সংস্করণ 2.6.0 এই কমিট ধারণ করে.
2.5.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
-
LiveData
এখন একটি নতুনisInitialized
প্রপার্টি রয়েছে যা নির্দেশ করে যেLiveData
এ কখনও একটি সুস্পষ্ট মান সেট করা হয়েছে কিনা, আপনাকেliveData.value
রিটার্নিংnull
এর মধ্যে পার্থক্য করতে দেয় কারণ কোনো মান কখনও সেট করা হয়নি বা একটি সুস্পষ্টnull
মান। -
MediatorLiveData
এখন একটি প্রাথমিক মান সেট করার জন্য একটি কন্সট্রাক্টর অন্তর্ভুক্ত করে। -
StateFlow
এবংcollectAsStateWithLifecycle()
এরFlow
একটি নতুন এক্সটেনশন যোগ করা হয়েছে যা ফ্লো থেকে সংগ্রহ করে এবং লাইফসাইকেল-সচেতন পদ্ধতিতে কম্পোজ স্টেট হিসাবে এর সর্বশেষ মান উপস্থাপন করে। -
Lifecycle.launchWhenX
পদ্ধতি এবংLifecycle.whenX
পদ্ধতিগুলিকে অবমূল্যায়ন করা হয়েছে কারণ একটি পজিং ডিসপ্যাচার ব্যবহার কিছু ক্ষেত্রে সম্পদ নষ্ট করতে পারে৷Lifecycle.repeatOnLifecycle
ব্যবহার করার পরামর্শ দেওয়া হয়। এককালীন স্থগিত করা কাজ সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে এই ব্যাখ্যাটি দেখুন কেন এটি সহজাতভাবে অনিরাপদ। - কোটলিন রূপান্তর - প্রচুর সংখ্যক লাইফসাইকেল ক্লাস কোটলিনে রূপান্তরিত হয়েছে। সমস্ত রূপান্তরিত ক্লাস এখনও পূর্ববর্তী সংস্করণগুলির সাথে তাদের বাইনারি সামঞ্জস্য বজায় রাখে। কোটলিনে লেখা ক্লাসগুলির জন্য নিম্নোক্ত ক্লাসগুলির উৎস বেমানান পরিবর্তন রয়েছে:
ViewTreeLifecycleOwner
,LiveDataReactiveStreams
,HasDefaultViewModelProviderFactory
,ViewTreeViewModelStoreOwner
,Transformations
,ViewModelStoreOwner
,LifecycleOwner
নিচের সারণীটি জীবনচক্রের নতুন সংস্করণের জন্য উৎস রূপান্তর প্রদান করে।
জীবনচক্র 2.5 | জীবনচক্র 2.5 (KTX) | জীবনচক্র 2.6 |
---|---|---|
Transformations.switchMap(liveData) {...} | liveData.switchMap {...} | liveData.switchMap {...} |
Transformations.map(liveData) {...} | liveData.map {...} | liveData.map {...} |
Transformations.distinctUntilChanged(liveData) {...} | liveData.distinctUntilChanged{...} | liveData.distinctUntilChanged{...} |
LiveDataReactiveStreams.fromPublisher(publisher) | publisher.toLiveData() | publisher.toLiveData() |
LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData) | liveData.toPublisher(lifecycleOwner) | liveData.toPublisher(lifecycleOwner) |
override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory = factory | override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory = factory | override val defaultViewModelProviderFactory = factory |
override fun getDefaultViewModelCreationExtras(): CreationExtras = extras | override fun getDefaultViewModelCreationExtras(): CreationExtras = extras | override val defaultViewModelProviderCreationExtras = extras |
ViewTreeLifecycleOwner.set(view, owner) | ViewTreeLifecycleOwner.set(view, owner) | view.setViewTreeLifecycleOwner(owner) |
ViewTreeLifecycleOwner.get(view) | view.findViewTreeLifecycleOwner() | view.findViewTreeLifecycleOwner() |
override fun getViewModelStore(): ViewModelStore = store | override fun getViewModelStore(): ViewModelStore = store | override val viewModelStore: ViewModelStore = store |
override fun getLifecycle(): Lifecycle = registry | override fun getLifecycle(): Lifecycle = registry | override val lifecycle: Lifecycle get() = registry |
- কোটলিনে তৈরি একটি
Observer
onChanged
পদ্ধতির শূন্যতা এখন জেনেরিক টাইপের শূন্যতার সাথে মেলে। আপনি যদিObserver.onChanged()
একটি বাতিলযোগ্য টাইপ গ্রহণ করতে চান তবে আপনাকে অবশ্যই একটি বাতিলযোগ্য টাইপ দিয়েObserver
ইনস্ট্যান্টিয়েট করতে হবে। - এই ক্লাসগুলিও Kotlin-এ রূপান্তরিত হয়েছিল, কিন্তু সোর্স সামঞ্জস্যপূর্ণ থাকে:
DefaultLifecycleObserver
,LifecycleEventObserver
,Lifecycle
,LifecycleRegistry
,LifecycleObserver
,ViewModelStore
,AndroidViewModel
,AbstractSavedStateViewModelFactory
,LifecycleService
, এবংServiceLifecycleDispatcher
ProcessLifecycleOwner
সংস্করণ 2.6.0-rc01
22 ফেব্রুয়ারি, 2023
androidx.lifecycle:lifecycle-*:2.6.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
LiveData.distinctUntilChanged()
এক্সটেনশনটি এখন প্রত্যাবর্তিতLiveData
এরvalue
সেট করে যদি পূর্ববর্তীLiveData
এর উপর একটি মান সেট করা থাকে। এটি পর্যবেক্ষণ আচরণ পরিবর্তন করে না - উৎসLiveData
থেকে আপডেট করা মানগুলি এখনও প্রযোজ্য হবে যখন আপনিdistinctUntilChanged()
থেকে ফিরে আসাLiveData
পর্যবেক্ষণ করা শুরু করবেন। ( Ib482f )
সংস্করণ 2.6.0-beta01
ফেব্রুয়ারী 8, 2023
androidx.lifecycle:lifecycle-*:2.6.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-beta01-এ এই কমিট রয়েছে।
কোটলিন রূপান্তর
-
LifecycleOwner
এখন কোটলিনে লেখা আছে। এটি কোটলিনে লেখা ক্লাসগুলির জন্য একটি উত্স বেমানান পরিবর্তন - তাদের এখন পূর্ববর্তীgetLifecycle()
ফাংশন বাস্তবায়নের পরিবর্তেlifecycle
সম্পত্তি ওভাররাইড করতে হবে৷ ( I75b4b , b/240298691 ) -
ViewModelStoreOwner
এখন কোটলিনে আছেন। এটি কোটলিনে লেখা ক্লাসের জন্য একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - তাদের এখন অবশ্যই পূর্ববর্তীgetViewModelStore()
ফাংশন বাস্তবায়নের পরিবর্তেviewModelStore
সম্পত্তি ওভাররাইড করতে হবে। ( I86409 , b/240298691 ) -
LifecycleOwner
এ Kotlin এক্সটেনশন যাlifecycleScope
ফিল্ড প্রদান করে তাlifecycle-runtime-ktx
থেকেlifecycle-common
আর্টিফ্যাক্টে সরানো হয়েছে। ( I41d78 , b/240298691 ) -
Lifecycle
কোটলিন এক্সটেনশন যাcoroutineScope
ফিল্ড প্রদান করে তাlifecycle-runtime-ktx
থেকেlifecycle-common
আর্টিফ্যাক্টে সরানো হয়েছে। ( Iabb91 , b/240298691 )
সংস্করণ 2.6.0-alpha05
25 জানুয়ারী, 2023
androidx.lifecycle:lifecycle-*:2.6.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha05 এই কমিট ধারণ করে।
কোটলিন রূপান্তর
-
Transformations
এখন কোটলিনে লেখা হয়। এটি Kotlin-এ লেখা সেই ক্লাসগুলির জন্য একটি উৎস বেমানান পরিবর্তন যা সরাসরিTransformations.map
- Kotlin কোডের মতো সিনট্যাক্স ব্যবহার করে এখন Kotlin এক্সটেনশন পদ্ধতির সিনট্যাক্স ব্যবহার করতে হবে যা আগে শুধুমাত্রlifecycle-livedata-ktx
ব্যবহার করার সময় উপলব্ধ ছিল। জাভা প্রোগ্রামিং ভাষা ব্যবহার করার সময়, এই পদ্ধতিগুলির সংস্করণগুলি যেগুলি একটিandroidx.arch.core.util.Function
পদ্ধতি গ্রহণ করে সেগুলিকে অবমূল্যায়ন করা হয় এবং একটি KotlinFunction1
নেওয়া সংস্করণগুলির সাথে প্রতিস্থাপিত হয়। এই পরিবর্তনটি বাইনারি সামঞ্জস্য বজায় রাখে। ( I8e14f ) -
ViewTreeViewModelStoreOwner
এখন কোটলিনে লেখা। এটি Kotlin-এ লেখা সেই ক্লাসগুলির জন্য একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - আপনাকে এখন সরাসরিandroidx.lifecycle.setViewTreeViewModelStoreOwner
এবংandroidx.lifecycle.findViewTreeViewModelStoreOwner
এরView
Kotlin এক্সটেনশন পদ্ধতিগুলিকে সরাসরি আমদানি করতে হবে এবং ব্যবহার করতে হবে। এটি বাইনারি সামঞ্জস্যপূর্ণ এবং জাভা প্রোগ্রামিং ভাষায় লিখিত বাস্তবায়নের জন্য উত্স সামঞ্জস্যপূর্ণ থাকে। ( Ia06d8 , Ib22d8 , b/240298691 ) -
HasDefaultViewModelProviderFactory
ইন্টারফেস এখন কোটলিনে লেখা হয়েছে। এটি কোটলিনে লেখা ক্লাসগুলির জন্য একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - তাদের এখন পূর্ববর্তী সংশ্লিষ্ট ফাংশনগুলি বাস্তবায়নের পরিবর্তেdefaultViewModelProviderFactory
এবংdefaultViewModelCreationExtras
বৈশিষ্ট্যগুলিকে ওভাররাইড করতে হবে৷ ( Iaed9c , b/240298691 ) - কোটলিনে এখন
Observer
লেখা। এরonChanged()
পদ্ধতি এখন এর প্যারামিটারের জন্য নামেরvalue
ব্যবহার করে। ( Iffef2 , I4995e , b/240298691 ) -
AndroidViewModel
,AbstractSavedStateViewModelFactory
,LifecycleService
,ServiceLifecycleDispatcher
, এবংProcessLifecycleOwner
এখন কোটলিনে লেখা হয়েছে ( I2e771 , Ibae40 , I160d7 , I08884 , I1cda /749 , I1cda771 )
সংস্করণ 2.6.0-alpha04
11 জানুয়ারী, 2023
androidx.lifecycle:lifecycle-*:2.6.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha04 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
LiveData
এখন একটি নতুনisInitialized
প্রপার্টি রয়েছে যা নির্দেশ করে যেLiveData
এ কখনও একটি সুস্পষ্ট মান সেট করা হয়েছে কিনা, আপনাকেliveData.value
রিটার্নিংnull
এর মধ্যে পার্থক্য করতে দেয় কারণ কোনো মান কখনও সেট করা হয়নি বা একটি সুস্পষ্টnull
মান। ( Ibd018 )
এপিআই পরিবর্তন
-
lifecycle-runtime-compose
collectAsStateWithLifecycle()
APIগুলি আর পরীক্ষামূলক অবস্থায় নেই। ( I09d42 , b/258835424 ) -
Lifecycle.launchWhenX
পদ্ধতি এবংLifecycle.whenX
এটিLifecycle.repeatOnLifecycle
ব্যবহার করার পরামর্শ দেওয়া হয়। ( আইএএফসি 54 , বি/248302832 )
কোটলিন রূপান্তর
-
ViewTreeLifecycleOwner
এখন কোটলিনে রচিত। এটি কোটলিনে লিখিত সেই শ্রেণীরView
একটি উত্স বেমানান পরিবর্তন - আপনাকে এখন অবশ্যই সরাসরি কোটলিন এক্সটেনশন পদ্ধতিগুলিandroidx.lifecycle.setViewTreeLifecycleOwner
এবংandroidx.lifecycle.findViewTreeLifecycleOwner
সেট করার জন্য একটি পূর্বে সেট করার জন্য সেট করতে হবে এবং ব্যবহার করতে হবে। এটি পূর্ববর্তী কোটলিন এক্সটেনশনকেlifecycle-runtime-ktx
প্রতিস্থাপন করে। এটি বাইনারি সামঞ্জস্যপূর্ণ এবং জাভা প্রোগ্রামিং ভাষায় লিখিত বাস্তবায়নের জন্য উপযুক্ত উত্স হিসাবে রয়ে গেছে। ( I8a77a , i5234e , খ/240298691 ) -
LiveDataReactiveStreams
এখন কোটলিনে লেখা আছে। পূর্বেlifecycle-reactivestreams-ktx
এ কোটলিন এক্সটেনশনগুলিlifecycle-reactivestreams
মডিউলটিতে স্থানান্তরিত করা হয়েছে এবং কোটলিনে লেখা কোডের প্রাথমিক পৃষ্ঠে পরিণত হয়েছে। আপনি যদি ইতিমধ্যে কোটলিন এক্সটেনশন পদ্ধতি এপিআই ব্যবহার না করে থাকেন তবে কোটলিনে লিখিত কোডের জন্য এটি একটি উত্স বেমানান পরিবর্তন । ( আই 2 বি 1 বি 9, আই 95 ডি 22 , বি/240298691 ) -
DefaultLifecycleObserver
,LifecycleEventObserver
,Lifecycle
,LifecycleRegistry
,LifecycleObserver
এবংViewModelStore
এখন কোটলিনে লেখা হয়েছে ( আইএডিএফএফডি , ( আই 60034 , আই 60034 , আই 9593 ডি , আই 9593 ডি, আই 09512 )
বাগ ফিক্স
- ভুল শ্রেণীর ধরণের সাথে
get()
কল করার সময়SavedStateHandle
ClassCastException
দিয়ে ক্র্যাশ করে না। ( I6ae7c )
সংস্করণ 2.6.0-Alpha03
24 অক্টোবর, 2022
androidx.lifecycle:lifecycle-*:2.6.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- বিভিন্ন লাইফসাইকেল মডিউলগুলির মধ্যে সীমাবদ্ধতার সাথে একটি সমস্যা স্থির করেছে যা উদ্দেশ্য হিসাবে কাজ করছে না। ( I18d0d , খ/249686765 )
-
LifecycleRegistry.moveToState()
এখন আরও সহায়ক ত্রুটি মেসেজিং অন্তর্ভুক্ত করে যা ত্রুটির কারণ হিসাবে উপাদানগুলির বিকাশকারীদের অবহিত করে। ( আইডিএফ 4 বি 2 , বি/244910446 )
সংস্করণ 2.6.0-Alpha02
7 সেপ্টেম্বর, 2022
androidx.lifecycle:lifecycle-*:2.6.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA02 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
MediatorLiveData
এখন প্রাথমিক মান নির্ধারণের জন্য একজন নির্মাতা অন্তর্ভুক্ত। ( আইবি 6 সিসি 5 , বি/151244085 )
বাগ ফিক্স
-
Lifecycle
শিল্পকর্মগুলিতে এখন এমন সীমাবদ্ধতা অন্তর্ভুক্ত রয়েছে যা নিশ্চিত করে যে সমস্ত আন্তঃনির্ভর জীবনচক্রের নিদর্শনগুলি একই সংস্করণটি ব্যবহার করে, যখন একটি আপগ্রেড করা হয় তখন স্বয়ংক্রিয়ভাবে অন্যান্য নির্ভরতাগুলি আপগ্রেড করে। বি/242871265 -
FlowLiveData.asFlow()
এখন থ্রেড-সুরক্ষা এবং প্রসঙ্গ সংরক্ষণ নিশ্চিত করতে নিজস্বChannel
বাস্তবায়ন ব্যবহার না করে একটিcallbackFlow
তৈরি করে। ( আই 4 এ 8 বি 2 , বি/200596935 ) - নতুন
LiveData
অবজেক্ট তৈরি করার সময়FlowLiveData
asLiveData
ফাংশনটি এখন একটিStateFlow
প্রাথমিক মান সংরক্ষণ করবে। ( I3f530 , খ/157380488 ) - লাইফসাইকেল
2.5.1
থেকে:AndroidViewModelFactory
কাস্টম বাস্তবায়নগুলি এখনLifecycle
২.৪+ ( আই 5 বি 315 , বি/238011621 ) সহ রাষ্ট্রীয় কনস্ট্রাক্টর ব্যবহার করার সময়create(modelClass)
ফাংশনটিকে সঠিকভাবে কল করে
সংস্করণ 2.6.0-Alpha01
জুন 29, 2022
androidx.lifecycle:lifecycle-*:2.6.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
StateFlow
এবংcollectAsStateWithLifecycle
Flow
উপর একটি নতুন এক্সটেনশন যুক্ত করা হয়েছে যা প্রবাহ থেকে সংগ্রহ করে এবং লাইফসাইকেল-সচেতন পদ্ধতিতে তার সর্বশেষ মানকে রচনা রাষ্ট্র হিসাবে উপস্থাপন করে। প্রবাহটি সংগ্রহ করা হয় এবং যখন জীবনচক্রটি কমপক্ষে একটি নির্দিষ্টLifecycle.State
মধ্যে থাকে তখন নতুন নির্গমন রাষ্ট্রের মান হিসাবে সেট করা হয়। যখন লাইফসাইকেলটি সেইLifecycle.State
নীচে নেমে যায় rete ( I1856e , খ/230557927 )
সংস্করণ 2.5
সংস্করণ 2.5.1
জুলাই 27, 2022
androidx.lifecycle:lifecycle-*:2.5.1
প্রকাশিত হয়েছে। সংস্করণ 2.5.1 এ এই কমিটস রয়েছে।
বাগ ফিক্স
-
AndroidViewModelFactory
কাস্টম বাস্তবায়নগুলি এখনLifecycle
২.৪+ সহ রাষ্ট্রীয়AndroidViewModelFactory
কনস্ট্রাক্টর ব্যবহার করার সময়create(modelClass)
ফাংশনটি সঠিকভাবে কল করুন। ( I5b315 , খ/238011621 )
সংস্করণ 2.5.0
জুন 29, 2022
androidx.lifecycle:lifecycle-*:2.5.0
প্রকাশিত হয়েছে। সংস্করণ 2.5.0 এ এই কমিটস রয়েছে।
2.4.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন
SavedStateHandle
এখন একটিgetStateFlow()
এপিআই সরবরাহ করে যাLiveData
ব্যবহারের বিকল্প হিসাবে মান পরিবর্তনগুলি পর্যবেক্ষণের জন্য একটি কোটলিনStateFlow
দেয়।ভিউমোডেল ক্রিয়েটিনেক্সট্রা - যখন কাস্টম
ViewModelProvider.Factory
লেখার সময়, যথাক্রমে কোনওApplication
বাSavedStateHandle
অ্যাক্সেস পেতেAndroidViewModelFactory
বাAbstractSavedStateViewModelFactory
প্রসারিত করার প্রয়োজন হয় না। পরিবর্তে, এই ক্ষেত্রগুলি প্রতিটিViewModelProvider.Factory
সাবক্লাসকে ক্রিয়েটিনেক্সট্রাস হিসাবেCreationExtras
হিসাবে সরবরাহ করা হয়:create
:create(Class<T>, CreationExtras)
। এই অতিরিক্তগুলি যথাক্রমে1.5.0
এবং খণ্ড1.5.0
ব্যবহার করার সময় আপনার ক্রিয়াকলাপ বা খণ্ড দ্বারা স্বয়ংক্রিয়ভাবে সরবরাহ করা হয়।class CustomFactory : ViewModelProvider.Factory { override fun <T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras): T { return when (modelClass) { HomeViewModel::class -> { // Get the Application object from extras val application = checkNotNull(extras[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY]) // Pass it directly to HomeViewModel HomeViewModel(application) } DetailViewModel::class -> { // Create a SavedStateHandle for this ViewModel from extras val savedStateHandle = extras.createSavedStateHandle() DetailViewModel(savedStateHandle) } else -> throw IllegalArgumentException("Unknown class $modelClass") } as T } }
lifecycle-viewmodel
ViewModel
CreationExtras
viewModelFactory
কোটলিন ডিএসএল সরবরাহ করে যা আপনাকে আপনারViewModelProvider.Factory
সংজ্ঞায়িত করতে দেয় oneval customFactory = viewModelFactory { // The return type of the lambda automatically sets what class this lambda handles initializer { // Get the Application object from extras provided to the lambda val application = checkNotNull(get(ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY)) HomeViewModel(application) } initializer { val savedStateHandle = createSavedStateHandle() DetailViewModel(savedStateHandle) } }
lifecycle-viewmodel-compose
এখন একটিviewModel()
এপিআই সরবরাহ করে যা কাস্টমViewModelProvider.Factory
তৈরি করার প্রয়োজন ছাড়াই একটিViewModel
উদাহরণ তৈরি করার জন্য একটি ল্যাম্বডা কারখানা গ্রহণ করে।// Within a @Composable, you can now skip writing a custom Factory // and instead write a lambda to do the initialization of your ViewModel val detailViewModel = viewModel { // This lambda is only called the first time the ViewModel is created // and all CreationExtras are available inside the lambda val savedStateHandle = createSavedStateHandle() DetailViewModel(savedStateHandle) }
সেভডস্টেটহ্যান্ডল কমপোজ সেভার ইন্টিগ্রেশন -লাইফসাইকেল
rememberSaveable
lifecycle-viewmodel-compose
আর্টিফ্যাক্টটিতেSavedStateHandle
SavedStateHandle.saveable
নতুন পরীক্ষামূলক এপিআই রয়েছে sclass ListScreenViewModel(handle: SavedStateHandle): ViewModel() { // This value survives both configuration changes and process death and recreation val editMode by handle.saveable { mutableStateOf(false) } }
একটি
addCloseable()
এপিআই এবং একটি নতুন কনস্ট্রাক্টর ওভারলোড যুক্ত করা হয়েছে যা আপনাকেViewModel
এক বা একাধিকCloseable
অবজেক্ট যুক্ত করতে দেয় যাViewModel
onCleared()
এর কোনও ম্যানুয়াল কাজের প্রয়োজন ছাড়াই সাফ হয়ে গেলে বন্ধ হয়ে যাবে।উদাহরণস্বরূপ, আপনি একটি ভিউমোডেলে ইনজেকশন করতে পারেন এমন একটি করুটাইন স্কোপ তৈরি করতে, তবে পরীক্ষার মাধ্যমে নিয়ন্ত্রণ করুন, আপনি একটি
CoroutineScope
তৈরি করতে পারেন যাCloseable
কার্যকর করে:class CloseableCoroutineScope( context: CoroutineContext = SupervisorJob() + Dispatchers.Main.immediate ) : Closeable, CoroutineScope { override val coroutineContext: CoroutineContext = context override fun close() { coroutineContext.cancel() } }
যা
viewModelScope
মতো একই জীবনকাল বজায় রেখে আপনারViewModel
কনস্ট্রাক্টারে ব্যবহার করা যেতে পারে:class TestScopeViewModel( val customScope: CloseableCoroutineScope = CloseableCoroutineScope() ) : ViewModel(customScope) { // You can now use customScope in the same way as viewModelScope }
আচরণ পরিবর্তন
-
Lifecycle.State
INITIALIZED
থেকেDESTROYED
সরানোর চেষ্টা করা এখনLifecycle
কোনও সংযুক্ত পর্যবেক্ষক আছে কিনা তা নির্বিশেষে সর্বদা একটিIllegalStateException
নিক্ষেপ করবে। -
LifecycleRegistry
এখনDESTROYED
অবস্থায় পৌঁছে তাদের পর্যবেক্ষকদের সাফ করবে।
সংস্করণ 2.5.0-আরসি 02
15 জুন, 2022
androidx.lifecycle:lifecycle-*:2.5.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-আরসি 02 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- 2.5+ সংস্করণগুলির সাথে সংকলন লাইফসাইকেল নির্ভরতার পূর্ববর্তী সংস্করণগুলি মিশ্রিত করার সময়
ViewModelProvider
আর ক্র্যাশ হবে না। ( I81a66 , বি/230454566 )
সংস্করণ 2.5.0-আরসি 01
11 মে, 2022
androidx.lifecycle:lifecycle-*:2.5.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
সংস্করণ 2.5.0-BETA01
20 এপ্রিল, 2022
androidx.lifecycle:lifecycle-*:2.5.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-BETA01 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
SavedStateHandle.saveable
সম্পত্তি প্রতিনিধিদের সংরক্ষণের জন্য কী হিসাবে সম্পত্তির নামগুলি ব্যবহার করার জন্যSavedStateHandle
অবিচ্ছিন্নভাবে ব্যবহার করার জন্য ( I8BB86 , B/225014345 )
বাগ ফিক্স
- এমন একটি সমস্যা স্থির করা হয়েছে যেখানে একটি নন-প্রাথমিক নীচের নেভিগেশন ট্যাবে অন্য
NavHost
মধ্যে একটিNavHost
বাসা বেঁধে একাধিক ব্যাক স্ট্যাক ব্যবহার করার সময় একটিIllegalStateException
হতে পারে। ( আই 11 বিডি 5 , বি/228865698 )
সংস্করণ 2.5.0-আলফা 06
6 এপ্রিল, 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA06 এর মধ্যে এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
এপিআই পরিবর্তন
-
CreationExtras
এখন সিল করার পরিবর্তে বিমূর্ত। ( আইবি 8 এ 7 এ )
বাগ ফিক্স
- একটি
IllegalStateException: Already attached to lifecycleOwner
SavedStateHandleController
দ্বারা সৃষ্ট লাইফসাইকেল মালিকের ত্রুটির সাথে সংযুক্ত। ( I7ea47 , বি/215406268 )
সংস্করণ 2.5.0-আলফা 05
23 মার্চ, 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA05 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
lifecycle-viewmodel-compose
মডিউলটি এখনSavedStateHandleSaver
সরবরাহ করে, একটি পরীক্ষামূলক এপিআই যা একটিSavedStateHandle
মানগুলি নিশ্চিত করে যে একই সংরক্ষিত উদাহরণগুলির সাথে সঠিকভাবে সংহত করা হয়েছে যাrememberSaveable
ব্যবহারগুলি স্মরণ করে। ( আইএ 88 বি 7 , বি/195689777 )
এপিআই পরিবর্তন
- জাভাতে লাইফসাইকেল ২.৩ এবং নতুন লাইফসাইকেল সংস্করণগুলির সাথে একটি সামঞ্জস্যতা সমস্যা স্থির করে। ( I52c8a , খ/219545060 )
বাগ ফিক্স
-
SavedStateViewFactory
এখনCreationExtras
ব্যবহার করে সমর্থন করে এমনকি যখন এটি একটিSavedStateRegistryOwner
দিয়ে শুরু করা হয়েছিল। অতিরিক্ত প্রদান করা হলে, প্রাথমিক আর্গুমেন্ট উপেক্ষা করা হয়। ( I6c43b , b/224844583 )
সংস্করণ 2.5.0-আলফা 04
9 মার্চ, 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
SavedStateHandle
এখন একটিgetStateFlow()
এপিআই সরবরাহ করে যাLiveData
ব্যবহারের বিকল্প হিসাবে মান পরিবর্তনগুলি পর্যবেক্ষণের জন্য একটি কোটলিনStateFlow
দেয়। ( আইএডি 3 অ্যাব , বি/178037961 )
সংস্করণ 2.5.0-Alpha03
23 ফেব্রুয়ারি, 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- একটি
addCloseable()
এপিআই এবং একটি নতুন কনস্ট্রাক্টর ওভারলোড যুক্ত করা হয়েছে যা আপনাকেViewModel
এক বা একাধিকCloseable
অবজেক্ট যুক্ত করতে দেয় যাViewModel
onCleared()
এর কোনও ম্যানুয়াল কাজের প্রয়োজন ছাড়াই সাফ হয়ে গেলে বন্ধ হয়ে যাবে। ( I55ea0 ) -
lifecycle-viewmodel
এখন একটিInitializerViewModelFactory
সরবরাহ করে যা আপনাকে প্রাথমিক ডেটা উত্স হিসাবেCreationExtras
ব্যবহার করে নির্দিষ্টViewModel
ক্লাসগুলি পরিচালনা করার জন্য ল্যাম্বডা যুক্ত করতে দেয়। ( আইএফ 58 এফসি , বি/216687549 ) -
lifecycle-viewmodel-compose
এখন একটিviewModel()
এপিআই সরবরাহ করে যা কাস্টমViewModelProvider.Factory
তৈরি করার প্রয়োজন ছাড়াই একটিViewModel
উদাহরণ তৈরি করার জন্য একটি ল্যাম্বডা কারখানা গ্রহণ করে। ( I97fbb , খ/216688927 )
এপিআই পরিবর্তন
- আপনি এখন
lifecycle-viewmodel-compose
মাধ্যমেCreationExtras
সাথে একটিViewModel
তৈরি করতে পারেন। ( I08887 , বি/216688927 )
আচরণ পরিবর্তন
-
Lifecycle.State
INITIALIZED
থেকেDESTROYED
সরানোর চেষ্টা করা এখনLifecycle
কোনও সংযুক্ত পর্যবেক্ষক আছে কিনা তা নির্বিশেষে সর্বদা একটিIllegalStateException
নিক্ষেপ করবে। ( I7c390 , বি/177924329 ) -
LifecycleRegistry
এখনDESTROYED
অবস্থায় পৌঁছে তাদের পর্যবেক্ষকদের সাফ করবে। ( আই 4 এফ 8 ডিডি , বি/142925860 )
সংস্করণ 2.5.0-আলফা 02
ফেব্রুয়ারী 9, 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA02 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
SavedStateHandle
এবংSavedStateViewModelFactory
কোটলিনে রূপান্তরিত হয়েছে। এটি উভয় শ্রেণিতে জেনেরিকদের নালিবিলিটি উন্নত করেছে। ( আইবি 6ce2 , বি/216168263 , আই 9647 এ , বি/177667711 ) -
LiveData
switchMap
ফাংশন প্যারামিটারটিতে এখন একটি বাতিল আউটপুট থাকতে পারে। ( I40396 , বি/1329236666 ) -
LiveData
-কেটিএক্স এক্সটেনশানগুলি এখন এই ফাংশনগুলি কল করার সময় ফলাফলটি ব্যবহৃত হয় তা প্রয়োগ করার জন্য@CheckResult
সাথে টীকা দেওয়া হয়। ( আইএ 0 এফ 05 , বি/207325134 )
আচরণ পরিবর্তন
- নির্দিষ্ট কীটির কোনও মান বিদ্যমান না থাকলে
SavedStateHandle
এখন যথাযথভাবে ডিফল্টভ্যালু সঞ্চয় করে। ( I1c6ce , খ/178510877 )
বাগ ফিক্স
- লাইফসাইকেল থেকে
2.4.1
থেকে: আপডেট হওয়াlifecycle-process
স্টার্টআপ ১.১.১ এর উপর নির্ভর করে যাতে নিশ্চিত হয় যে প্রক্রিয়াগুলি যেProcessLifecycleInitializer
StartupException
করা থেকে বিরত রোধ করে তা ডিফল্টরূপে পাওয়া যায়। ( আইবি 01 ডিএফ , বি/216490724 ) - কাস্টম
AndroidViewModel
ক্লাসগুলিতে ভুল ক্রমে পরামিতি থাকে এবং একটিViewModel
তৈরি করার চেষ্টা করা হয় তখন এখন একটি উন্নত ত্রুটি বার্তা রয়েছে। ( I340f7 , বি/177667711 ) - আপনি এখন অ্যাপ্লিকেশন সেট না করে
AndroidViewModelFactory
ব্যবহার করেCreationExtras
মাধ্যমে একটি ভিউ মডেল তৈরি করতে পারেন। ( I6ebef , খ/217271656 )
সংস্করণ 2.5.0-আলফা 01
জানুয়ারী 26, 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA01 এর মধ্যে এই কমিটগুলি রয়েছে।
ভিউমোডেল ক্রিয়েটিনেক্সট্রা
এই প্রকাশের সাথে, আমরা কীভাবে একটি ViewModel
নির্মিত হয় তা পুনর্গঠনের জন্য ভিত্তি তৈরি করছি। ViewModelProvider.Factory
সাবক্লাসের একটি অনমনীয় সেটের পরিবর্তে প্রতিটি অতিরিক্ত কার্যকারিতা SavedStateViewModelFactory
করে ( AndroidViewModelFactory
মাধ্যমে একটি Application
কনস্ট্রাক্টর প্যারামিটারকে মঞ্জুরি দেয়, SavedStateHandle
এবং AbstractSavedStateViewModelFactory
, ইত্যাদি। একটি নতুন ধারণা, CreationExtras
। ( আইএ 7343 , বি/188691010 , বি/188541057 )
এই পরিবর্তনের সাথে সাথে, ViewModelProvider
ViewModelProvider.Factory
পূর্ববর্তী create(Class<T>)
পদ্ধতিতে সরাসরি কল করে না। পরিবর্তে, এটি create
একটি নতুন ওভারলোডে কল করে: create(Class<T>, CreationExtras)
। এর অর্থ হ'ল ViewModelProvider.Factory
উদাহরণের যে কোনও সরাসরি বাস্তবায়ন এখন এই নতুন CreationExtras
প্রত্যেকটিতে অ্যাক্সেস রয়েছে:
-
ViewModelProvider.NewInstanceFactory.VIEW_MODEL_KEY
: এইString
আপনিViewModelProvider.get()
এ পাস করা কাস্টম কীটিতে অ্যাক্সেস সরবরাহ করে। -
ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY
Application
শ্রেণিতে অ্যাক্সেস সরবরাহ করে। -
SavedStateHandleSupport.SAVED_STATE_REGISTRY_OWNER_KEY
এই ভিউমোডেলটি নির্মাণের জন্য ব্যবহৃত হচ্ছেSavedStateRegistryOwner
মালিককে অ্যাক্সেস সরবরাহ করে। -
SavedStateHandleSupport.VIEW_MODEL_STORE_OWNER_KEY
এই ভিউমোডেলটি তৈরি করতে ব্যবহৃতViewModelStoreOwner
মালিককে অ্যাক্সেস সরবরাহ করে। -
SavedStateHandleSupport.DEFAULT_ARGS_KEY
যুক্তিগুলিরBundle
অ্যাক্সেস সরবরাহ করে যা একটিSavedStateHandle
নির্মাণের জন্য ব্যবহার করা উচিত।
ক্রিয়াকলাপ 1.5.0-alpha01
, খণ্ড 1.5.0-alpha01
এবং নেভিগেশন 2.5.0-alpha01
ব্যবহার করার সময় এই অতিরিক্তগুলি ডিফল্টরূপে সরবরাহ করা হয়। আপনি যদি এই গ্রন্থাগারগুলির পূর্ববর্তী সংস্করণটি ব্যবহার করেন তবে আপনার CreationExtras
খালি থাকবে - ViewModelProvider.Factory
সমস্ত বিদ্যমান সাবক্লাসগুলি CreationExtras
এগিয়ে যাচ্ছে
এই CreationExtras
আপনাকে একটি ViewModelProvider.Factory
তৈরি করার অনুমতি দেয় যা কারখানার সাবক্লাসগুলির কঠোর শ্রেণিবিন্যাসের উপর নির্ভর না করে প্রতিটি ViewModel
আপনার প্রয়োজনীয় তথ্যগুলি পাস করে:
class CustomFactory : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras): T {
return when (modelClass) {
HomeViewModel::class -> {
// Get the Application object from extras
val application = checkNotNull(extras[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY])
// Pass it directly to HomeViewModel
HomeViewModel(application)
}
DetailViewModel::class -> {
// Create a SavedStateHandle for this ViewModel from extras
val savedStateHandle = extras.createSavedStateHandle()
DetailViewModel(savedStateHandle)
}
else -> throw IllegalArgumentException("Unknown class $modelClass")
} as T
}
}
আমরা কেবল একটি ভিউমোডেলের জন্য একটি SavedStateHandle
তৈরি করতে SavedStateHandleSupport
থেকে CreationExtras
createSavedStateHandle()
কোটলিন এক্সটেনশন ফাংশনটি ব্যবহার করি। ( আইএ 6654 , বি/188541057 )
কাস্টম CreationExtras
আপনার ComponentActivity
বা Fragment
getDefaultViewModelCreationExtras()
ওভাররাইড করে সরবরাহ করা যেতে পারে, এইভাবে এগুলি আপনার কাস্টম ViewModelProvider.Factory
সহায়তা করা ইনজেকশন আকারে অন্তর্নির্মিত হিসাবে উপলব্ধ করে তোলে। এই অতিরিক্তগুলি স্বয়ংক্রিয়ভাবে আপনার কাস্টম কারখানায় যখন সরাসরি ViewModelProvider
সাথে ব্যবহার করা হয় বা by viewModels()
এবং by activityViewModels()
ব্যবহার করার সময় উপলব্ধ করা হবে। ( I79f2b , বি/207012584 , বি/207012585 , বি/207012490 )
বাগ ফিক্স
- এমন একটি সমস্যা স্থির করা হয়েছে যেখানে কোনও
SavedStateHandle
সরবরাহ করা ডিফল্ট মান প্রক্রিয়া মৃত্যু এবং বিনোদন দেওয়ার পরে আবার উপস্থিত হবে, এমনকি যদি এটিSavedStateHandle
থেকে নির্দিষ্টভাবে সরানো হয়েছিল। এর ফলস্বরূপ,SavedStateHandle
আর ডিফল্ট মানগুলিকে মার্জ করবে না এবং মানগুলি একসাথে পুনরুদ্ধার করবে না, পরিবর্তে কেবল সত্যের উত্স হিসাবে পুনরুদ্ধার করা মানগুলি ব্যবহার করে। ( I53a4b )
সংস্করণ 2.4
সংস্করণ 2.4.1
ফেব্রুয়ারী 9, 2022
androidx.lifecycle:lifecycle-*:2.4.1
প্রকাশিত হয়েছে। সংস্করণ 2.4.1 এ এই কমিটস রয়েছে।
বাগ ফিক্স
- লাইফসাইকেল
2.5.0-alpha01
থেকে ব্যাকপোর্ট করা: একটি সমস্যা স্থির করা হয়েছে যেখানে একটিSavedStateHandle
সরবরাহ করা ডিফল্ট মান প্রক্রিয়া মৃত্যু এবং বিনোদনের পরে পুনরায় উপস্থিত হবে, এমনকি যদি এটিSavedStateHandle
থেকে বিশেষভাবে অপসারণ করা হয়েছিল। এর ফলস্বরূপ,SavedStateHandle
আর ডিফল্ট মানগুলিকে মার্জ করবে না এবং মানগুলি একসাথে পুনরুদ্ধার করবে না, পরিবর্তে কেবল সত্যের উত্স হিসাবে পুনরুদ্ধার করা মানগুলি ব্যবহার করে। ( I53a4b ) -
lifecycle-process
এখন অ্যান্ড্রয়েডএক্স স্টার্টআপ 1.1.1 এর উপর নির্ভর করে যাProcessLifecycleInitializer
ব্যবহার করার ফলে একটিStartupException
ঘটায় সেখানে একটি রিগ্রেশন স্থির করে। ( বি/216490724 )
সংস্করণ 2.4.0
27 অক্টোবর, 2021
androidx.lifecycle:lifecycle-*:2.4.0
প্রকাশিত হয়েছে। সংস্করণ 2.4.0 এ এই কমিটস রয়েছে।
2.3.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন
-
@OnLifecycleEvent
অবমূল্যায়ন করা হয়েছিল।LifecycleEventObserver
বাDefaultLifecycleObserver
পরিবর্তে ব্যবহার করা উচিত। -
androidx.lifecycle:lifecycle-viewmodel-compose
লাইব্রেরি যুক্ত করা হয়েছিল। এটিviewModel()
কমপোজেবল এবংLocalViewModelStoreOwner
সরবরাহ করে।- উত্স-ব্রেকিং পরিবর্তন :
ViewModelProvider
কোটলিনে পুনরায় লেখা হয়েছে।ViewModelProvider.Factory.create
পদ্ধতি আর নালযোগ্য জেনেরিককে অনুমতি দেয় না।
- উত্স-ব্রেকিং পরিবর্তন :
- নতুন করুটাইন এপিআই
androidx.lifecycle:lifecycle-runtime-ktx
: এ যুক্ত করা হয়েছিল: -
Lifecycle.repeatOnLifecycle
, এপিআই যা লাইফসাইকেলটি কমপক্ষে একটি নির্দিষ্ট অবস্থায় থাকে যখন একটি করুটিনে কোডের একটি ব্লক কার্যকর করে। লাইফসাইকেলটি লক্ষ্য রাজ্যের ভিতরে এবং বাইরে চলে যাওয়ার সাথে সাথে ব্লকটি বাতিল এবং পুনরায় চালু হবে; -
Flow.flowWithLifecycle
, এপিআই যা লাইফসাইকেলটি কমপক্ষে একটি নির্দিষ্ট অবস্থায় থাকে যখন প্রবাহের প্রবাহ থেকে মানগুলি নির্গত করে। -
DefaultLifecycleObserver
লাইফসাইকেল থেকে সরানোlifecycle.lifecycle-common
lifecycle.lifecycle-common-java8
lifecycle.lifecycle-common-java8
লাইফসাইকেলের শীর্ষে আর কোনও অতিরিক্ত কার্যকারিতা সরবরাহ করে নাlifecycle.lifecycle-common
, সুতরাং এটির উপর নির্ভরতাlifecycle.lifecycle-common
-
lifecycle-viewmodel-ktx
থেকে নন করুটাইন এপিআইlifecycle-viewmodel
মডিউলটিতে স্থানান্তরিত হয়েছে। lifecycle-process
এখনProcessLifecycleOwner
আরম্ভ করতেandroidx.startup
ব্যবহার করে।পূর্বে, এটি
androidx.lifecycle.ProcessLifecycleOwnerInitializer
দ্বারা সম্পন্ন করা হয়েছিল।আপনি যদি
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.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
(বা)
<!-- If you want to disable androidx.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
সংস্করণ 2.4.0-আরসি 01
29 সেপ্টেম্বর, 2021
androidx.lifecycle:lifecycle-*:2.4.0-rc01
লাইফসাইকেল 2.4.0-BETA01 থেকে কোনও পরিবর্তন ছাড়াই প্রকাশিত হয়। সংস্করণ 2.4.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
সংস্করণ 2.4.0-BETA01
15 সেপ্টেম্বর, 2021
androidx.lifecycle:lifecycle-*:2.4.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-BETA01 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
@OnLifecycleEvent
অবমূল্যায়ন করা হয়েছিল।LifecycleEventObserver
বাDefaultLifecycleObserver
পরিবর্তে ব্যবহার করা উচিত। ( I5a8fa ) - ডিফল্টলিফেসাইক্লোবসার্ভার
androidx.lifecycle.lifecycle-common-java8
থেকেandroidx.lifecycle.lifecycle-common
থেকে সরানো হয়েছিল।androidx.lifecycle.lifecycle-common-java8
androidx.lifecycle.lifecycle-common
এর শীর্ষে কোনও অতিরিক্ত কার্যকারিতা সরবরাহ করে না, সুতরাং এর উপর নির্ভরতাandroidx.lifecycle.lifecycle-common
দ্বারা প্রতিস্থাপন করা যেতে পারে। ( I021aa ) -
lifecycle-viewmodel-ktx
থেকে নন করুটাইন এপিআইlifecycle-viewmodel
মডিউলটিতে স্থানান্তরিত হয়েছে। ( I6d5b2 )
বাহ্যিক অবদান
-
ViewModel
ডকুমেন্টেশনে কোনও ধরণের ঠিক করার জন্য ধন্যবাদ ডিমিট্রিলক ! ( #221 )
সংস্করণ 2.4.0-আলফা 03
4 আগস্ট, 2021
androidx.lifecycle:lifecycle-*:2.4.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- উত্স-ব্রেকিং পরিবর্তন : ভিউমোডেলপ্রোভাইডার কোটলিনে পুনরায় লেখা হয়েছে।
ViewModelProvider.Factory.create
পদ্ধতি আর নালযোগ্য জেনেরিককে অনুমতি দেয় না। ( I9b9f6 )
আচরণ পরিবর্তন
-
Lifecycle.repeatOnLifecycle
: এক্সিকিউশন পুনরাবৃত্তি করার সময়block
এখন সর্বদা ক্রমিকভাবে আহ্বান করা হয়। ( আইবিএবি 33 )
বাহ্যিক অবদান
-
repeatOnLifecycle
ডকুমেন্টেশনে কোড স্নিপেটগুলি ঠিক করার জন্য চাও 2 জ্যাংকে ধন্যবাদ। #205 ।
সংস্করণ 2.4.0-আলফা 02
16 জুন, 2021
androidx.lifecycle:lifecycle-*:2.4.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA02 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
-
lifecycle-runtime-ktx
-এ একটি নতুনRepeatOnLifecycleWrongUsage
লিন্ট চেক যুক্ত করা হয়েছে যা সনাক্ত করে যখনrepeateOnLifecycle
ভুলভাবেonStart()
বাonResume()
এ ব্যবহৃত হয়। ( 706078 , বি/187887400 )
এপিআই পরিবর্তন
-
LifecycleOwner.addRepeatingJob
এপিআইLifecycle.repeatOnLifecycle
পক্ষে সরানো হয়েছে rep ( I4a3a8 ) -
ProcessLifecycleInitializer
সর্বজনীন করুন যাতে অন্যান্যandroidx.startup.Initializer
গুলি এগুলি নির্ভরতা হিসাবে ব্যবহার করতে পারে। ( I94c31 )
বাগ ফিক্স
- যখন ক্ষেত্রের সংশোধনকারী থাকে তখন
NullSafeMutableLiveData
লিন্ট চেকের সাথে একটি সমস্যা স্থির করে। ( #147 , খ/183696616 ) - জেনেরিকগুলি ব্যবহার করার সময়
NullSafeMutableLiveData
লিন্ট চেকের সাথে আরও একটি সমস্যা স্থির করে। ( #161 , বি/184830263 )
বাহ্যিক অবদান
-
NullSafeMutableLiveData
লিন্ট চেকটি উন্নত করার জন্য ম্যাক্সসভকে ধন্যবাদ। ( #147 , খ/183696616 ) -
NullSafeMutableLiveData
লিন্ট চেকটি উন্নত করার জন্য কোজাক্সিনানকে ধন্যবাদ। ( #161 , বি/184830263 )
সংস্করণ 2.4.0-আলফা 01
24 মার্চ, 2021
androidx.lifecycle:lifecycle-*:2.4.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।
আচরণ পরিবর্তন
lifecycle-process
এখনProcessLifecycleOwner
আরম্ভ করতেandroidx.startup
ব্যবহার করে।পূর্বে, এটি
androidx.lifecycle.ProcessLifecycleOwnerInitializer
দ্বারা সম্পন্ন করা হয়েছিল।আপনি যদি
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.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
(বা)
<!-- If you want to disable androidx.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
এপিআই পরিবর্তন
- একটি
Flow.flowWithLifecycle
যুক্ত করা হয়েছেLifecycle.repeatOnLifecycle
এটি নতুনLifecycleOwner.addRepeatinJob
বিকল্প। ( I0f4cd )
বাগ ফিক্স
- লাইফসাইকেল থেকে ২.৩.১ থেকে:
NonNullableMutableLiveData
লিন্ট বিধি এখন বিভিন্ন নালিবিলিটি সহ ক্ষেত্রের ভেরিয়েবলের মধ্যে সঠিকভাবে পার্থক্য করতে পারে। ( খ/169249668 )
লাইফসাইকেল ভিউমোডেল রচনা সংস্করণ 1.0.0
সংস্করণ 1.0.0-alpha07
16 জুন, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha07 এই কমিট ধারণ করে।
ব্রেকিং এপিআই পরিবর্তন
-
viewModel()
এখন একটি al চ্ছিকViewModelStoreOwner
নেয়, এটিLocalViewModelStoreOwner
মালিক ব্যতীত অন্য মালিকদের সাথে কাজ করা সহজ করে তোলে। উদাহরণস্বরূপ, আপনি এখন নির্দিষ্ট নেভিগেশন গ্রাফের সাথে সম্পর্কিত ভিউমোডেল পুনরুদ্ধার করতেviewModel(navBackStackEntry)
ব্যবহার করতে পারেন। ( আই 2628 ডি , বি/188693123 )
সংস্করণ 1.0.0-alpha06
2 জুন, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha06 এই কমিট ধারণ করে।
রচনা সংস্করণ 1.0.0-beta08
এর সাথে সামঞ্জস্যপূর্ণ হতে আপডেট হয়েছে।
সংস্করণ 1.0.0-alpha05
18 মে, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha05
প্রকাশিত হয়েছে। 1.0.0-alpha05 সংস্করণে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- রচনা সংস্করণ
1.0.0-beta07
এর সাথে সামঞ্জস্যপূর্ণ হতে আপডেট হয়েছে।
বাগ ফিক্স
- ui-test-manifest এবং ui-tooling-data থেকে AndroidManifest ফাইলগুলি এখন Android 12 ( I6f9de , b/184718994 ) এর সাথে সামঞ্জস্যপূর্ণ
সংস্করণ 1.0.0-alpha04
7 এপ্রিল, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04 এই কমিট ধারণ করে।
নির্ভরতা পরিবর্তন
- এই সংস্করণটি
androidx.hilt:hilt-navigation-compose
এবংandroidx.navigation:navigation-compose
androidx.compose.compiler:compiler:1.0.0-beta04
এবংandroidx.compose.runtime:runtime:1.0.0-beta04
। 1.0.0 এর জন্য, এটি সংকলক এবং রানটাইম ম্যাচটি প্রয়োজন।
সংস্করণ 1.0.0-alpha03
10 মার্চ, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
LocalViewModelStoreOwner.current
এখন কোনওViewModelStoreOwner
বর্তমান রচনায় উপলব্ধ কিনা তা আরও ভালভাবে নির্ধারণ করার জন্য একটি বাতিলযোগ্যViewModelStoreOwner
প্রদান করে।viewModel()
এবংNavHost
মতোViewModelStoreOwner
প্রয়োজন এমন এপিআইগুলি যদি কোনওViewModelStoreOwner
সেট না করা থাকে তবে এখনও একটি ব্যতিক্রম নিক্ষেপ করুন। ( আইডিএফ 39 এ )
লাইফসাইকেল-ভিউমোডেল-কমপোজ সংস্করণ 1.0.0-আলফা 02
24 ফেব্রুয়ারি, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
LocalViewModelStoreOwner
কাছে এখন একটি ফাংশনprovides
যাCompositionLocalProvider
সাথে ব্যবহার করা যেতে পারে,asProvidableCompositionLocal()
এপিআই প্রতিস্থাপন করে। ( I45d24 )
লাইফসাইকেল-ভিউমোডেল-কমপোজ সংস্করণ 1.0.0-আলফা 01
ফেব্রুয়ারী 10, 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
viewModel()
কমপোজেবল এবংLocalViewModelStoreOwner
androidx.compose.ui.viewinterop
থেকেandroidx.lifecycle.viewmodel.compose
প্যাকেজে এই নিদর্শনটিতে স্থানান্তরিত করা হয়েছিল। ( I7a374 )
সংস্করণ 2.3.1
লাইফসাইকেল সংস্করণ 2.3.1
24 মার্চ, 2021
androidx.lifecycle:lifecycle-*:2.3.1
প্রকাশিত হয়েছে। সংস্করণ 2.3.1 এ এই কমিটস রয়েছে।
বাগ ফিক্স
-
NonNullableMutableLiveData
লিন্ট নিয়মটি এখন বিভিন্ন বাতিলতার সাথে ক্ষেত্রের ভেরিয়েবলের মধ্যে সঠিকভাবে পার্থক্য করতে পারে। ( খ/169249668 )
সংস্করণ 2.3.0
সংস্করণ 2.3.0
ফেব্রুয়ারী 10, 2021
androidx.lifecycle:lifecycle-*:2.3.0
প্রকাশিত হয়েছে। সংস্করণ 2.3.0 এ এই কমিটস রয়েছে।
২.২.০ সাল থেকে বড় পরিবর্তন
- অ-পার্সেলেবল ক্লাসগুলির জন্য
SavedStateHandle
সমর্থন :SavedStateHandle
এখন আপনাকে একটি প্রদত্ত কীটির জন্যsetSavedStateProvider()
কল করার অনুমতি দিয়ে অলস সিরিয়ালাইজেশনকে সমর্থন করে, যখনsaveState()
তার রাজ্য সংরক্ষণের জন্য জিজ্ঞাসা করাSavedStateHandle
তখনSavedStateProvider
সরবরাহ করে। নন-পার্সেলেবল ক্লাসগুলি সংরক্ষণ করা দেখুন। - লাইফসাইকেল আচরণ প্রয়োগ :
- লাইফসাইক্লারেজিস্ট্রি এখন একটি টার্মিনাল রাষ্ট্র হিসাবে
DESTROYED
প্রয়োগ করে। -
LifecycleRegistry
এখন যাচাই করে যে এর পদ্ধতিগুলি মূল থ্রেডে ডাকা হয়। এটি সর্বদা ক্রিয়াকলাপ, খণ্ডসমূহ ইত্যাদির লাইফসাইকেলগুলির জন্য প্রয়োজনীয়তা ছিল, নন-মেইন থ্রেডগুলি থেকে পর্যবেক্ষকদের একটি সংযোজনের ফলে রানটাইমে ক্র্যাশগুলি ধরা শক্ত হয়ে যায়। আপনার নিজস্ব উপাদানগুলির মালিকানাধীনLifecycleRegistry
অবজেক্টগুলিরLifecycleRegistry
, আপনিLifecycleRegistry.createUnsafe(...)
- লাইফসাইক্লারেজিস্ট্রি এখন একটি টার্মিনাল রাষ্ট্র হিসাবে
- লাইফসাইকেল স্টেট এবং ইভেন্ট হেল্পার্স :
downFrom(State)
,State
downTo(State)
,Event
upFrom(State)
,Lifecycle.Event
upTo(State)
যুক্ত স্ট্যাটিক হেল্পার পদ্ধতিগুলি যুক্ত করা হয়েছে।getTargetState()
পদ্ধতি যুক্ত করা হয়েছে যাState
সরবরাহ করে যে লাইফাইসাইকেলটি সরাসরিEvent
অনুসরণ করে স্থানান্তরিত করবে। -
withStateAtLeast
: যুক্তLifecycle.withStateAtLeast
এই এপিআইগুলি বিদ্যমানগুলির থেকে পৃথক হয়when*
পদ্ধতিগুলি তারা স্থগিতকরণ কোড চালানোর অনুমতি দেয় না এবং কাস্টম প্রেরণকারীকে নিয়োগ দেয় না। ( এওএসপি/1326081 ) -
ViewTree
এপিআইএস : একটি নতুনViewTreeLifecycleOwner.get(View)
এবংViewTreeViewModelStoreOwner.get(View)
এপিআই আপনাকে যথাক্রমে একটিView
উদাহরণ দেওয়াLifecycleOwner
এবংViewModelStoreOwner
পুনরুদ্ধার করতে দেয়। এটিকে সঠিকভাবে পপুলেট করতে আপনাকে অবশ্যই ক্রিয়াকলাপ1.2.0
এবং খণ্ড1.3.0
এবং অ্যাপকম্প্যাট 1.3.0-আলফা 01 বা তার বেশি উচ্চতর আপগ্রেড করতে হবে।findViewTreeLifecycleOwner
মালিক এবংfindViewTreeViewModelStoreOwner
কোটলিন এক্সটেনশনগুলি যথাক্রমেlifecycle-runtime-ktx
এবংlifecycle-viewmodel-ktx
পাওয়া যায়। -
LiveData.observe()
LiveData.observe()
কোটলিন এক্সটেনশন অবমূল্যায়ন : ল্যাম্বডা সিনট্যাক্স ব্যবহারের জন্য প্রয়োজনীয় কোটলিন এক্সটেনশনটি এখন কোটলিন 1.4 ব্যবহার করার সময় প্রয়োজনীয় নয় বলে কোটলিন এক্সটেনশনটি এখন হ্রাস করা হয়েছে।
সংস্করণ 2.3.0-আরসি 01
16 ডিসেম্বর, 2020
androidx.lifecycle:lifecycle-*:2.3.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
-
SavedStateHandle
keys()
পদ্ধতিটি এখন রাজ্য সংরক্ষণের আগে এবং পরে সামঞ্জস্যপূর্ণ - এটি এখনset()
এবংgetLiveData()
এর সাথে ব্যবহৃত কীগুলি ছাড়াওsetSavedStateProvider()
এর সাথে পূর্বে ব্যবহৃত কীগুলি অন্তর্ভুক্ত করে। ( এওএসপি/1517919 , বি/174713653 )
বাহ্যিক অবদান
- লাইফসাইকেল-সচেতন করুটাইনগুলি স্থগিত করার এপিআইগুলি এখন আরও ভাল কল
yield()
কলগুলি পরিচালনা করে। ধন্যবাদ নিক্লাস অ্যানসম্যান গিয়ার্টজ! ( এওএসপি/1430830 , বি/168777346 )
সংস্করণ 2.3.0-BETA01
অক্টোবর 1, 2020
androidx.lifecycle:lifecycle-*:2.3.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-BETA01 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
LiveData.observe()
সিনট্যাক্স ব্যবহারের জন্য প্রয়োজনীয় কোটলিন এক্সটেনশনটি এখন কোটলিন ১.৪ ব্যবহার করার সময় প্রয়োজনীয় নয় বলে এখন অবমূল্যায়ন করা হয়েছে। ( I40d3f )
বাগ ফিক্স
- কোটলিন 1.4 ( আইডি 6471 , বি/165307851 , বি/165300826 ) ব্যবহার করতে অ্যান্ড্রয়েডএক্স আপগ্রেড করুন
ডকুমেন্টেশন পরিবর্তন
- প্রদত্ত সময়সীমা মানগুলি পরিবর্তন করার বিষয়ে বিশদ অন্তর্ভুক্ত করার জন্য
liveData
বিল্ডার এবংasLiveData()
ডক্স আপডেট করা হয়েছে। ( এওএসপি/1122324 )
সংস্করণ 2.3.0-Alpha07
আগস্ট 19, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA07 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
-
NullSafeMutableLiveData
লিন্ট চেকটিতে একটি ক্র্যাশ ইস্যু স্থির করে। ( এওএসপি/1395367 )
সংস্করণ 2.3.0-Alpha06
22 জুলাই, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
downFrom(State)
,downTo(State)
,upFrom(State)
,Lifecycle.Event
পর্যন্তupTo(State)
এর স্ট্যাটিক হেল্পার পদ্ধতি যুক্ত করা হয়েছে। একটিState
এবং পরিবর্তনের দিকনির্দেশনা প্রদত্তEvent
উত্পন্ন করার জন্য।getTargetState()
পদ্ধতি যুক্ত করা হয়েছে যাState
সরবরাহ করে যে লাইফাইসাইকেলটি সরাসরিEvent
অনুসরণ করে স্থানান্তরিত করবে। ( I00887 ) -
Lifecycle.withStateAtLeast
যুক্ত করা হয়েছে। এই এপিআইগুলি বিদ্যমানগুলির থেকে পৃথক হয়when*
পদ্ধতিগুলি তারা স্থগিতকরণ কোড চালানোর অনুমতি দেয় না এবং কাস্টম প্রেরণকারীকে নিয়োগ দেয় না। ( এওএসপি/1326081 )
আচরণ পরিবর্তন
- লাইফসাইক্লারেজিস্ট্রি এখন একটি টার্মিনাল রাষ্ট্র হিসাবে
DESTROYED
প্রয়োগ করে। ( I00887 ) -
LifecycleRegistry
এখন যাচাই করে যে এর পদ্ধতিগুলি মূল থ্রেডে ডাকা হয়। এটি সর্বদা ক্রিয়াকলাপ, খণ্ডসমূহ ইত্যাদির লাইফসাইকেলগুলির জন্য প্রয়োজনীয়তা ছিল, নন-মেইন থ্রেডগুলি থেকে পর্যবেক্ষকদের একটি সংযোজনের ফলে রানটাইমে ক্র্যাশগুলি ধরা শক্ত হয়ে যায়। আপনার নিজস্ব উপাদানগুলির মালিকানাধীনLifecycleRegistry
অবজেক্টগুলিরLifecycleRegistry
, আপনিLifecycleRegistry.createUnsafe(...)
ব্যবহার করে চেকগুলি থেকে স্পষ্টভাবে বেছে নিতে পারেন। IE7280 , খ/137392809 )
বাগ ফিক্স
-
NullSafeMutableLiveData
একটি ক্র্যাশ স্থির করেছে। ( খ/159987480 ) -
lifecycle-livedata-core-ktx
(এবং বিশেষতNullSafeMutableLiveData
) এর সাথে বান্ডিলযুক্ত লিন্ট চেকগুলির জন্য একটি অপ্রচলিতকরণের জন্য একটিObsoleteLintCustomCheck
স্থির করে। ( খ/158699265 )
সংস্করণ 2.3.0-আলফা 05
জুন 24, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA05 এর মধ্যে এই কমিটগুলি রয়েছে।
বাগ ফিক্স
-
LiveData
এখন আরও ভাল রেন্ট্র্যান্ট কেসগুলি পরিচালনা করে,onActive()
বাonInactive()
এ নকল কলগুলি এড়িয়ে চলেছে। ( খ/157840298 ) - অ্যান্ড্রয়েড স্টুডিও 4.1 ক্যানারি 6 বা তার বেশি ব্যবহার করার সময় লিন্ট চেকগুলি চলবে না এমন একটি সমস্যা স্থির করে। ( এওএসপি/1331903 )
সংস্করণ 2.3.0-আলফা 04
জুন 10, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
-
NonNullableMutableLiveData
লিন্ট চেকটিতে একটি ক্র্যাশ স্থির করেছে। ( খ/157294666 ) -
NonNullableMutableLiveData
লিন্ট চেক এখন উল্লেখযোগ্যভাবে আরও বেশি ক্ষেত্রে কভার করে যেখানে একটি নন-নাল টাইপ প্যারামিটার সহ একটিMutableLiveData
একটিnull
মান সেট করা হয়েছিল। ( খ/156002218 )
সংস্করণ 2.3.0-আলফা 03
20 মে, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
-
SavedStateHandle
এখন আপনাকে একটি প্রদত্ত কীটির জন্যsetSavedStateProvider()
কল করার অনুমতি দিয়ে অলস সিরিয়ালাইজেশনকে সমর্থন করে, যখনSavedStateHandle
তার রাজ্যটি সংরক্ষণের জন্য বলা হয় তখনsaveState()
এ কলব্যাক পাবে এমন একটিSavedStateProvider
সরবরাহ করে। ( খ/155106862 ) - একটি নতুন
ViewTreeViewModelStoreOwner.get(View)
এপিআই আপনাকে একটিView
উদাহরণ দেওয়াViewModelStoreOwner
পুনরুদ্ধার করতে দেয়। এটিকে সঠিকভাবে পপুলেশন করতে আপনাকে অবশ্যই ক্রিয়াকলাপ1.2.0-alpha05
, খণ্ড1.3.0-alpha05
এবং অ্যাপকম্প্যাট1.3.0-alpha01
এ আপগ্রেড করতে হবে।lifecycle-viewmodel-ktx
এ একটিfindViewModelStoreOwner()
কোটলিন এক্সটেনশন যুক্ত করা হয়েছে। ( এওএসপি/1295522 )
বাগ ফিক্স
- লাইফসাইকেল
2.3.0-alpha01
এ প্রকাশিতMutableLiveData
লিন্ট চেকগুলিlifecycle-livedata-core-ktx
আর্টিফ্যাক্টের পাশাপাশি প্রকাশিত হতে পারে এমন একটি সমস্যা সমাধান করেছে। ( খ/155323109 )
সংস্করণ 2.3.0-আলফা 02
এপ্রিল 29, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA02 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
SavedStateViewModelFactory
এখন আপনাকে তার নির্মাতাকে আরও ভাল সমর্থন করার জন্য একটি নালApplication
পাস করার অনুমতি দেয় যেখানে একটি সহজেই উপলব্ধ নয় এবংAndroidViewModel
জন্য সহায়তার প্রয়োজন নেই। ( এওএসপি/1285740 )
বাগ ফিক্স
- এপিআই 28 এবং নিম্ন ডিভাইসে শ্রেণি যাচাইকরণ ব্যর্থতা এড়িয়ে শীতল স্টার্ট পারফরম্যান্স উন্নত। ( এওএসপি/1282118 )
সংস্করণ 2.3.0-Alpha01
4 মার্চ, 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
LifecycleOwner
View
ViewTreeLifecycleOwner.get(View)
এটিকে সঠিকভাবে পপুলেট করতে আপনাকে অবশ্যই ক্রিয়াকলাপ1.2.0-alpha01
এবং খণ্ড1.3.0-alpha01
এ আপগ্রেড করতে হবে। একটিfindViewTreeLifecycleOwner
কোটলিন এক্সটেনশনlifecycle-runtime-ktx
পাওয়া যায়। ( এওএসপি/1182361 , এওএসপি/1182956 ) - কোটলিনে নন-নুল হিসাবে সংজ্ঞায়িত করা একটি
MutableLiveData
একটিnull
মান নির্ধারণের সময় একটি নতুন লিন্ট চেক যুক্ত করা হয়েছে যা আপনাকে সতর্ক করে।livedata-core-ktx
বাlivedata-ktx
শিল্পকর্মগুলি ব্যবহার করার সময় এটি উপলব্ধ। ( এওএসপি/1154723 , এওএসপি/1159092 ) - একটি নতুন
lifecycle-runtime-testing
শিল্পকর্ম উপলব্ধ যা একটিTestLifecycleOwner
সরবরাহ করে যাLifecycleOwner
প্রয়োগ করে এবং একটি থ্রেড নিরাপদ পরিবর্তনযোগ্যLifecycle
সরবরাহ করে। ( এওএসপি/1242438 )
বাগ ফিক্স
-
lifecycle-runtime
আর্টিফ্যাক্টে এখন একটি অনন্য প্যাকেজের নাম রয়েছে। ( এওএসপি/1187196 )
সংস্করণ 2.2.0
ভিউমোডেল-সেভেডস্টেট সংস্করণ 2.2.0
ফেব্রুয়ারি 5, 2020
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0
প্রকাশিত হয়েছে। সংস্করণ 2.2.0 এ এই কমিটস রয়েছে ।
লাইফসাইকেল ভিউমোডেল সেভডস্টেট এখন অন্যান্য লাইফসাইকেল নিদর্শনগুলির মতো একই সংস্করণ ভাগ করে। 2.2.0
এর আচরণটি 1.0.0
এর আচরণের সাথে সমান।
সংস্করণ 2.2.0
জানুয়ারী 22, 2020
androidx.lifecycle:lifecycle-*:2.2.0
প্রকাশিত হয়েছে। সংস্করণ 2.2.0 এ এই কমিটস রয়েছে ।
2.1.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন
- লাইফসাইকেল করুটাইন ইন্টিগ্রেশন : নতুন
lifecycle-runtime-ktx
আর্টিফ্যাক্ট লাইফসাইকেল এবং কোটলিন করুটাইনগুলির মধ্যে সংহতকরণ যুক্ত করে।lifecycle-livedata-ktx
করুটাইনগুলির সুবিধা নিতে প্রসারিত করা হয়েছে। আরও তথ্যের জন্য আর্কিটেকচার উপাদানগুলির সাথে কোটলিন করুটাইন ব্যবহার করুন দেখুন। -
ViewModelProviders.of()
অবমূল্যায়ন :ViewModelProviders.of()
হ্রাস করা হয়েছে। You can pass aFragment
orFragmentActivity
to the newViewModelProvider(ViewModelStoreOwner)
constructor to achieve the same functionality when using Fragment1.2.0
. -
lifecycle-extensions
Artifact Deprecation : With the above deprecation ofViewModelProviders.of()
, this release marks the deprecation of the last API inlifecycle-extensions
and this artifact should now be considered deprecated in its entirety. We strongly recommend depending on the specific Lifecycle artifacts you need (such aslifecycle-service
if you're usingLifecycleService
andlifecycle-process
if you're usingProcessLifecycleOwner
) rather thanlifecycle-extensions
as there will not be a future2.3.0
release oflifecycle-extensions
. - Gradle Incremental Annotation Processor : Lifecycle's annotation processor is incremental by default. If your app is written in the Java 8 programming language you can use
DefautLifecycleObserver
instead; and if it's written in the Java 7 programming language you can useLifecycleEventObserver
.
Version 2.2.0-rc03
4 ডিসেম্বর, 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc03
is released. Version 2.2.0-rc03 contains these commits .
বাগ ফিক্স
- Fixed a failure occurring when a mocked
ViewModel
was stored inViewModelStore
and queried later with default factory. - Fix a usage of
Dispatchers.Main.immediate
inlaunchWhenCreated
and similar methods to be called synchronously during corresponding lifecycle event. ( aosp/1156203 )
বাহ্যিক অবদান
- Thanks to Anders Järleberg for contributing the fix! ( aosp/1156203 )
- Thanks to Vsevolod Tolstopyatov from Jetbrains for reviewing an implementation of inlined execution.
নির্ভরতা পরিবর্তন
- Lifecycle Extensions now depends on Fragment
1.2.0-rc03
.
Version 2.2.0-rc02
নভেম্বর 7, 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc02
is released. Version 2.2.0-rc02 contains these commits .
বাগ ফিক্স
- Fixed a bug in the proguard setup of the library that affected devices running API 28+ if the target API is below 29. ( b/142778206 )
Version 2.2.0-rc01
23 অক্টোবর, 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc01
is released. Version 2.2.0-rc01 contains these commits .
বাগ ফিক্স
- Fixed an issue where
launchWhenCreated
and related methods would run one frame later than the associated lifecycle method due to its use ofDispatchers.Main
instead ofDispatchers.Main.immediate
. ( aosp/1145596 )
বাহ্যিক অবদান
- Thanks to Nicklas Ansman for contributing the fix! ( aosp/1145596 )
Version 2.2.0-beta01
9 অক্টোবর, 2019
androidx.lifecycle:lifecycle-*:2.2.0-beta01
is released. Version 2.2.0-beta01 contains these commits .
বাগ ফিক্স
- Fixed a regression introduced in Lifecycle 2.2.0-alpha05 in the ordering of
ProcessLifecycleOwner
and the activity'sLifecycleOwner
moving to started and resumed on Android 10 devices. ( aosp/1128132 ) - Fixed a regression introduced in Lifecycle
2.2.0-alpha05
which would cause aNullPointerException
when using version2.0.0
or2.1.0
oflifecycle-process
. ( b/141536990 )
Version 2.2.0-alpha05
সেপ্টেম্বর 18, 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha05
is released. Version 2.2.0-alpha05 contains these commits .
বাগ ফিক্স
- Fixed a race condition in coroutine livedata builder. b/140249349
Version 2.2.0-alpha04
5 সেপ্টেম্বর, 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha04
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট্য
-
lifecycleScope
,whenCreated
,whenStarted
,whenResumed
,viewModelScope
, and the underlying implementation ofliveData
now useDispatchers.Main.immediate
instead ofDispatchers.Main
. ( b/139740492 )
বাহ্যিক অবদান
- Thanks to Nicklas Ansman for contributing the move to
Dispatchers.Main.immediate
! ( aosp/1106073 )
Version 2.2.0-alpha03
7 আগস্ট, 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha03
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট্য
- Implementations of
ViewModelStoreOwner
can now optionally implementHasDefaultViewModelProviderFactory
to provide a defaultViewModelProvider.Factory
. This has been done for Activity1.1.0-alpha02
, Fragment1.2.0-alpha02
, and Navigation2.2.0-alpha01
. ( aosp/1092370 , b/135716331 )
এপিআই পরিবর্তন
-
ViewModelProviders.of()
has been deprecated. You can pass aFragment
orFragmentActivity
to the newViewModelProvider(ViewModelStoreOwner)
constructor to achieve the same functionality. ( aosp/1009889 )
Version 2.2.0-alpha02
জুলাই 2, 2019
androidx.lifecycle:*:2.2.0-alpha02
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
এপিআই পরিবর্তন
- Replaced
LiveDataScope.initialValue
withLiveDataScope.latestValue
which will track the current emitted value of theliveData
block. - Added a new overload to the
liveData
builder that receivestimeout
parameter as typeDuration
Version 2.2.0-alpha01
7 মে, 2019
androidx.lifecycle:*:2.2.0-alpha01
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট্য
- This release adds new features that adds support for Kotlin coroutines for Lifecycle and LiveData. Detailed documentation on them can be found here .
ViewModel-SavedState Version 1.0.0
সংস্করণ 1.0.0
জানুয়ারী 22, 2020
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0
is released. সংস্করণ 1.0.0 এ এই কমিটগুলি রয়েছে ।
Important features in 1.0.0
- New SavedStateHandle class was added. It enables your
ViewModel
classes to access and to contribute to the saved state. This object can be received in constructor ofViewModel
class and factories provided by default by Fragments and AppCompatActivity will injectSavedStateHandle
automatically. - AbstractSavedStateViewModelFactory was added. It allows you to create custom factories for your
ViewModel
and provide them access toSavedStateHandle
.
ViewModel-Savedstate Version 1.0.0-rc03
4 ডিসেম্বর, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03
is released. Version 1.0.0-rc03 contains these commits .
নির্ভরতা পরিবর্তন
- Lifecycle ViewModel SavedState now depends on Lifecycle
2.2.0-rc03
.
Viewmodel-Savedstate Version 1.0.0-rc02
নভেম্বর 7, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02
is released. সংস্করণ 1.0.0-rc02-এ এই কমিট রয়েছে ।
নির্ভরতা পরিবর্তন
- Now depends on lifecycle
2.2.0-rc02
.
ViewModel-SavedState Version 1.0.0-rc01
23 অক্টোবর, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01
is released with no changes from 1.0.0-beta01
. সংস্করণ 1.0.0-rc01-এ এই কমিট রয়েছে ।
ViewModel-Savedstate Version 1.0.0-beta01
9 অক্টোবর, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01
is released. সংস্করণ 1.0.0-beta01-এ এই কমিট রয়েছে ।
বাগ ফিক্স
- Fixed an issue where accessing a SavedState ViewModel for the first time in
Activity.onActivityResult()
would result in anIllegalStateException
. ( b/139093676 ) - Fixed an
IllegalStateException
when usingAbstractSavedStateViewModelFactory
. ( b/141225984 )
ViewModel-SavedState Version 1.0.0-alpha05
সেপ্টেম্বর 18, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05
is released. সংস্করণ 1.0.0-alpha05-এ এই কমিট রয়েছে ।
এপিআই পরিবর্তন
-
SavedStateViewModelFactory
no longer extendsAbstractSavedStateViewModelFactory
andSavedStateHandle
is created only for ViewModels that requested have it ( aosp/1113593 )
ViewModel-SavedState Version 1.0.0-alpha03
7 আগস্ট, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
ব্রেকিং পরিবর্তন
-
lifecycle-viewmodel-savedstate
no longer depends onfragment
and the relatedSavedStateViewModelFactory(Fragment)
andSavedStateViewModelFactory(FragmentActivity)
constructors have been removed. Instead,SavedStateViewModelFactory
is now the default factory for Activity1.1.0-alpha02
, Fragment1.2.0-alpha02
, and Navigation2.2.0-alpha01
. ( b/135716331 )
ViewModel-SavedState Version 1.0.0-alpha02
জুলাই 2, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট্য
- Added
SavedStateHandle.getLiveData()
overload which accepts a default value.
এপিআই পরিবর্তন
-
SavedStateVMFactory
is renamed toSavedStateViewModelFactory
. -
AbstractSavedStateVMFactory
is renamed toAbstractSavedStateViewModelFactory
.
ViewModel-Savedstate Version 1.0.0-alpha01
13 মার্চ, 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01
is released. The full commit log for this initial release can be found here .
নতুন বৈশিষ্ট্য
- Now
ViewModels
can contribute to savedstate. To do that you use newly introduced viewmodel's factorySavedStateVMFactory
and your ViewModel should have a constructor that receivesSavedStateHandle
object as a parameter.
সংস্করণ 2.1.0
Important changes since 2.0.0
- Added
LifecycleEventObserver
for the cases when a stream of lifecycle events is needed. It is a public API instead of a hiddenGenericLifecycleObserver
class. - Added ktx extensions for
LiveData.observe
methods andTransformations.*
methods. - Added
Transformations.distinctUntilChanged
, which creates a new LiveData object that does not emit a value until the sourceLiveData
value has been changed. - Added coroutine support in ViewModels by adding the extension property
ViewModel.viewModelScope
.
সংস্করণ 2.1.0
5 সেপ্টেম্বর, 2019
androidx.lifecycle:lifecycle-*:2.1.0
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
Version 2.1.0-rc01
জুলাই 2, 2019
androidx.lifecycle:*:2.1.0-rc01
is released with no changes from androidx.lifecycle:*:2.1.0-beta01
. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
Version 2.1.0-beta01
7 মে, 2019
androidx.lifecycle:*:2.1.0-beta01
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট্য
- Lifecycles are graduated to beta: api introduced in previous alphas such as
liveData
extension functions for transformations and observations,ViewModel
initialisation with property delegation and others are stabilised and not going to change.
Version 2.1.0-alpha04
3 এপ্রিল, 2019
androidx.lifecycle:*:2.1.0-alpha04
is released. এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
এপিআই পরিবর্তন
- Breaking change: the underlying API behind
by viewModels()
andby activityViewModels()
has been changed to support aViewModelStore
directly, rather than only aViewModelStoreOwner
. ( aosp/932932 )
Version 2.1.0-alpha03
13 মার্চ, 2019
androidx.lifecycle:*:2.1.0-alpha03
is released. The full list of commits included in this version can be found here .
এপিআই পরিবর্তন
-
ViewModelProvider.KeyedFactory
was removed. Second interface in addition toViewModelProvider.Factory
didn't compose well with new features as property delegation in Kotlinby viewmodels {}
. ( aosp/914133 )
Version 2.1.0-alpha02
30 জানুয়ারী, 2019
androidx.lifecycle 2.1.0-alpha02
is released.
এপিআই পরিবর্তন
-
LifecycleRegistry
now contains asetCurrentState()
method that replaces the now deprecatedsetState()
method. ( aosp/880715 )
বাগ ফিক্স
- Fixed an issue where mock
ViewModel
instances would crash when the containingViewModelStore
was cleared. b/122273087
Version 2.1.0-alpha01
ডিসেম্বর 17, 2018
androidx.lifecycle 2.1.0-alpha01
is released.
নতুন বৈশিষ্ট্য
- Added
LifecycleEventObserver
for the cases when a stream of lifecycle events is needed. It is a public api instead of a hiddenGenericLifecycleObserver
class. - Added ktx extensions for
LiveData.observe
methods andTransformations.*
methods. - Method
Transformations.distinctUntilChanged
was added. It creates a newLiveData
object that does not emit a value until the source LiveData value has been changed. - Coroutine support in ViewModels: extension property
ViewModel.viewModelScope
was added. - Added
ViewModelProvider.KeyedFactory
, a factory for ViewModels that receiveskey
andClass
increate
method.
সংস্করণ 2.0.0
সংস্করণ 2.0.0
সেপ্টেম্বর 21, 2018
Lifecycle 2.0.0
is released with one bugfix from 2.0.0-rc01
in ViewModel.
বাগ ফিক্স
- Fixed a ViewModel proguard rule that incorrectly removed constructors b/112230489
Version 2.0.0-beta01
জুলাই 2, 2018
বাগ ফিক্স
- Fixed LifecycleObserver proguard rule to keep only implementations, not subinterfaces b/71389427
- Fixed ViewModel proguard rules to allow obfuscation and shrinking
Pre-AndroidX Versions
For the pre-AndroidX versions of Lifecycle that follow, include these dependencies:
dependencies {
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
// alternatively - just ViewModel
implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // For Kotlin use viewmodel-ktx
// alternatively - just LiveData
implementation "android.arch.lifecycle:livedata:$lifecycle_version"
// alternatively - Lifecycles only (no ViewModel or LiveData).
// Support library depends on this lightweight import
implementation "android.arch.lifecycle:runtime:$lifecycle_version"
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor
// alternately - if using Java8, use the following instead of compiler
implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
// optional - ReactiveStreams support for LiveData
implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"
// optional - Test helpers for LiveData
testImplementation "android.arch.core:core-testing:$lifecycle_version"
}
সংস্করণ 1.1.1
21 মার্চ, 2018
Only one small change: android.arch.core.util.Function
is moved from arch:runtime
to arch:common
. This allows it to be used without the runtime dependency, eg in paging:common
below.
lifecycle:common
is a dependency of lifecycle:runtime
, so this change doesn't affect lifecycle:runtime
directly, only modules that depend directly on lifecycle:common
, as Paging does.
সংস্করণ 1.1.0
জানুয়ারী 22, 2018
Packaging Changes
New, much smaller dependencies are now available:
-
android.arch.lifecycle:livedata:1.1.0
-
android.arch.lifecycle:viewmodel:1.1.0
এপিআই পরিবর্তন
- The deprecated
LifecycleActivity
andLifecycleFragment
have now been removed - please useFragmentActivity
,AppCompatActivity
or supportFragment
. -
@NonNull
annotations have been added toViewModelProviders
andViewModelStores
-
ViewModelProviders
constructor has been deprecated - please use its static methods directly -
ViewModelProviders.DefaultFactory
has been deprecated - please useViewModelProvider.AndroidViewModelFactory
- The static
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
method has been added to retrieve a staticFactory
suitable for creatingViewModel
andAndroidViewModel
instances.