জীবনচক্র

লাইফসাইকেল-সচেতন উপাদানগুলি অন্য উপাদানের জীবনচক্রের অবস্থার পরিবর্তনের প্রতিক্রিয়া হিসাবে ক্রিয়া সম্পাদন করে, যেমন ক্রিয়াকলাপ এবং টুকরা। এই উপাদানগুলি আপনাকে আরও ভাল-সংগঠিত, এবং প্রায়শই হালকা-ওজন কোড তৈরি করতে সাহায্য করে, যা বজায় রাখা সহজ।

এই টেবিলটি androidx.lifecycle গ্রুপের সমস্ত শিল্পকর্মের তালিকা করে।

আর্টিফ্যাক্ট স্থিতিশীল রিলিজ প্রার্থী মুক্তি বিটা রিলিজ আলফা রিলিজ
জীবনচক্র-* 2.8.6 - - 2.9.0-আলফা04
জীবনচক্র-ভিউ মডেল-কম্পোজ 2.8.6 - - 2.9.0-আলফা04
এই লাইব্রেরিটি সর্বশেষ আপডেট করা হয়েছিল: অক্টোবর 2, 2024

নির্ভরতা ঘোষণা করা

জীবনচক্রের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:

Kotlin

Groovy

    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"
    }
    

Kotlin

    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")
    }
    

Java

Groovy

    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"
    }
    

Kotlin

    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-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.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.6

সেপ্টেম্বর 18, 2024

androidx.lifecycle:lifecycle-*:2.8.6 প্রকাশিত হয়েছে। সংস্করণ 2.8.6-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • NullSafeMutableLiveData Lint ত্রুটি মিথ্যা ইতিবাচক এড়িয়ে স্মার্ট কাস্টের জন্য সমর্থন উন্নত করেছে। ( 85fed6 , b/181042665 )

নির্ভরতা আপডেট

সংস্করণ 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 )

নির্ভরতা আপডেট

সংস্করণ 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 কে Compose State হিসাবে প্রকাশ করতে ব্যবহার করতে পারেন। এটি 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 ইভেন্ট কলব্যাক উভয়ের উপর ভিত্তি করে Compose SideEffect চালানোর জন্য LifecycleResumeEffect API যোগ করা হয়েছে। ( I60386 , b/235529345 )
  • LifecycleStartEffect API যোগ করা হয়েছে Lifecycle.Event.ON_START এবং Lifecycle.Event.ON_STOP ইভেন্ট কলব্যাকের উপর ভিত্তি করে কম্পোজ SideEffect চালানোর জন্য। ( I5a8d1 , b/235529345 )
  • Lifecycle.Event এর উপর ভিত্তি করে Compose SideEffect চালানোর জন্য LifecycleEventEffect API যোগ করা হয়েছে। ( Ic9794 , b/235529345 )
  • Lifecycle.collectAsState() এক্সটেনশন যোগ করা হয়েছে সরাসরি Lifecycle.State কে Compose State হিসেবে প্রকাশ করতে। এটি 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-এ এই কমিট রয়েছে।

নির্ভরতা আপডেট

সংস্করণ 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 পদ্ধতি গ্রহণ করে সেগুলিকে অবমূল্যায়ন করা হয় এবং একটি Kotlin Function1 নেওয়া সংস্করণগুলির সাথে প্রতিস্থাপিত হয়। এই পরিবর্তনটি বাইনারি সামঞ্জস্য বজায় রাখে। ( 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 মধ্যে পার্থক্য করতে দেয় val ভ্যালু রিটার্নিং null কারণ কারণ কোনও মান কখনও সেট করা হয়নি বা একটি সুস্পষ্ট null মান। ( আইবিডি 018 )

এপিআই পরিবর্তন

  • lifecycle-runtime-compose collectAsStateWithLifecycle() সংগ্রহের স্ট্যাটাসে আর নেই। ( I09d42 , খ/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 সংজ্ঞায়িত করতে দেয় one

    val 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 নতুন পরীক্ষামূলক এপিআই রয়েছে s

    class 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 এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • MediatorLiveData.addSource() NullPointerException null null

সংস্করণ 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 এর মধ্যে এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • SavedStateHandle.saveable এ পরীক্ষামূলক MutableState ওভারলোড যুক্ত করুন rememberSaveable

এপিআই পরিবর্তন

  • 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 )

বাহ্যিক অবদান

সংস্করণ 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 এর সাথে সামঞ্জস্যপূর্ণ হতে আপডেট হয়েছে।

বাগ ফিক্স

  • ইউআই-টেস্ট-ম্যানিফেস্ট এবং ইউআই-টুলিং-ডেটা থেকে অ্যান্ড্রয়েডম্যানিফেস্ট ফাইলগুলি এখন অ্যান্ড্রয়েড 12 এর সাথে সামঞ্জস্যপূর্ণ ( i6f9de , বি/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 )

বাহ্যিক অবদান

সংস্করণ 2.3.0-BETA01

অক্টোবর 1, 2020

androidx.lifecycle:lifecycle-*:2.3.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-BETA01 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • LiveData.observe() সিনট্যাক্স ব্যবহারের জন্য প্রয়োজনীয় কোটলিন এক্সটেনশনটি এখন কোটলিন ১.৪ ব্যবহার করার সময় প্রয়োজনীয় নয় বলে এখন অবমূল্যায়ন করা হয়েছে। ( I40d3f )

বাগ ফিক্স

ডকুমেন্টেশন পরিবর্তন

  • প্রদত্ত সময়সীমা মানগুলি পরিবর্তন করার বিষয়ে বিশদ অন্তর্ভুক্ত করার জন্য 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 is released. Version 2.3.0-alpha01 contains these commits.

নতুন বৈশিষ্ট্য

  • A new ViewTreeLifecycleOwner.get(View) API allows you to retrieve the containing LifecycleOwner given a View instance. You must upgrade to Activity 1.2.0-alpha01 and Fragment 1.3.0-alpha01 to populate this correctly. A findViewTreeLifecycleOwner Kotlin extension is available in lifecycle-runtime-ktx . ( aosp/1182361 , aosp/1182956 )
  • Added a new Lint check that warns you when setting a null value on a MutableLiveData that has been defined in Kotlin as non-null. This is available when using the livedata-core-ktx or livedata-ktx artifacts. ( aosp/1154723 , aosp/1159092 )
  • A new lifecycle-runtime-testing artifact is available that provides a TestLifecycleOwner that implements LifecycleOwner and provides a thread safe mutable Lifecycle . ( aosp/1242438 )

বাগ ফিক্স

  • The lifecycle-runtime artifact now has a unique package name. ( aosp/1187196 )

Version 2.2.0

ViewModel-Savedstate Version 2.2.0

ফেব্রুয়ারি 5, 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 is released. Version 2.2.0 contains these commits .

Lifecycle ViewModel SavedState now shares the same version as other Lifecycle artifacts. The behavior of 2.2.0 is identical to the behavior of 1.0.0 .

Version 2.2.0

জানুয়ারী 22, 2020

androidx.lifecycle:lifecycle-*:2.2.0 is released. Version 2.2.0 contains these commits .

Important changes since 2.1.0

  • Lifecycle Coroutine Integration : The new lifecycle-runtime-ktx artifact adds integration between Lifecycle and Kotlin coroutines. The lifecycle-livedata-ktx has also been expanded to take advantage of coroutines. See Use Kotlin coroutines with Architecture Components for more details.
  • ViewModelProviders.of() deprecation : ViewModelProviders.of() has been deprecated. You can pass a Fragment or FragmentActivity to the new ViewModelProvider(ViewModelStoreOwner) constructor to achieve the same functionality when using Fragment 1.2.0 .
  • lifecycle-extensions Artifact Deprecation : With the above deprecation of ViewModelProviders.of() , this release marks the deprecation of the last API in lifecycle-extensions and this artifact should now be considered deprecated in its entirety. We strongly recommend depending on the specific Lifecycle artifacts you need (such as lifecycle-service if you're using LifecycleService and lifecycle-process if you're using ProcessLifecycleOwner ) rather than lifecycle-extensions as there will not be a future 2.3.0 release of lifecycle-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 use LifecycleEventObserver .

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 in ViewModelStore and queried later with default factory.
  • Fix a usage of Dispatchers.Main.immediate in launchWhenCreated and similar methods to be called synchronously during corresponding lifecycle event. ( aosp/1156203 )

External contributions

  • 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 of Dispatchers.Main instead of Dispatchers.Main.immediate . ( aosp/1145596 )

External contributions

  • 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's LifecycleOwner moving to started and resumed on Android 10 devices. ( aosp/1128132 )
  • Fixed a regression introduced in Lifecycle 2.2.0-alpha05 which would cause a NullPointerException when using version 2.0.0 or 2.1.0 of lifecycle-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. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • lifecycleScope , whenCreated , whenStarted , whenResumed , viewModelScope , and the underlying implementation of liveData now use Dispatchers.Main.immediate instead of Dispatchers.Main . ( b/139740492 )

External contributions

  • 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. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

এপিআই পরিবর্তন

  • ViewModelProviders.of() has been deprecated. You can pass a Fragment or FragmentActivity to the new ViewModelProvider(ViewModelStoreOwner) constructor to achieve the same functionality. ( aosp/1009889 )

Version 2.2.0-alpha02

জুলাই 2, 2019

androidx.lifecycle:*:2.2.0-alpha02 is released. The commits included in this version can be found here .

এপিআই পরিবর্তন

  • Replaced LiveDataScope.initialValue with LiveDataScope.latestValue which will track the current emitted value of the liveData block.
  • Added a new overload to the liveData builder that receives timeout parameter as type Duration

Version 2.2.0-alpha01

7 মে, 2019

androidx.lifecycle:*:2.2.0-alpha01 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • 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. Version 1.0.0 contains these commits .

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 of ViewModel class and factories provided by default by Fragments and AppCompatActivity will inject SavedStateHandle automatically.
  • AbstractSavedStateViewModelFactory was added. It allows you to create custom factories for your ViewModel and provide them access to SavedStateHandle .

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. Version 1.0.0-rc02 contains these commits .

নির্ভরতা পরিবর্তন

  • 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 . Version 1.0.0-rc01 contains these commits .

ViewModel-Savedstate Version 1.0.0-beta01

9 অক্টোবর, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .

বাগ ফিক্স

  • Fixed an issue where accessing a SavedState ViewModel for the first time in Activity.onActivityResult() would result in an IllegalStateException . ( b/139093676 )
  • Fixed an IllegalStateException when using AbstractSavedStateViewModelFactory . ( b/141225984 )

ViewModel-SavedState Version 1.0.0-alpha05

সেপ্টেম্বর 18, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits .

এপিআই পরিবর্তন

  • SavedStateViewModelFactory no longer extends AbstractSavedStateViewModelFactory and SavedStateHandle 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. The commits included in this version can be found here .

ব্রেকিং পরিবর্তন

ViewModel-SavedState Version 1.0.0-alpha02

জুলাই 2, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • Added SavedStateHandle.getLiveData() overload which accepts a default value.

এপিআই পরিবর্তন

  • SavedStateVMFactory is renamed to SavedStateViewModelFactory .
  • AbstractSavedStateVMFactory is renamed to AbstractSavedStateViewModelFactory .

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 factory SavedStateVMFactory and your ViewModel should have a constructor that receives SavedStateHandle 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 hidden GenericLifecycleObserver class.
  • Added ktx extensions for LiveData.observe methods and Transformations.* methods.
  • Added Transformations.distinctUntilChanged , which creates a new LiveData object that does not emit a value until the source LiveData 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. The commits included in this version can be found here .

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 . The commits included in this version can be found here .

Version 2.1.0-beta01

7 মে, 2019

androidx.lifecycle:*:2.1.0-beta01 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • 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. The commits included in this version can be found here .

এপিআই পরিবর্তন

  • Breaking change: the underlying API behind by viewModels() and by activityViewModels() has been changed to support a ViewModelStore directly, rather than only a ViewModelStoreOwner . ( 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 to ViewModelProvider.Factory didn't compose well with new features as property delegation in Kotlin by viewmodels {} . ( aosp/914133 )

Version 2.1.0-alpha02

30 জানুয়ারী, 2019

androidx.lifecycle 2.1.0-alpha02 is released.

এপিআই পরিবর্তন

  • LifecycleRegistry now contains a setCurrentState() method that replaces the now deprecated setState() method. ( aosp/880715 )

বাগ ফিক্স

  • Fixed an issue where mock ViewModel instances would crash when the containing ViewModelStore 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 hidden GenericLifecycleObserver class.
  • Added ktx extensions for LiveData.observe methods and Transformations.* methods.
  • Method Transformations.distinctUntilChanged was added. It creates a new LiveData 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 receives key and Class in create 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

প্যাকেজিং পরিবর্তন

New, much smaller dependencies are now available:

  • android.arch.lifecycle:livedata:1.1.0
  • android.arch.lifecycle:viewmodel:1.1.0

এপিআই পরিবর্তন

  • The deprecated LifecycleActivity and LifecycleFragment have now been removed - please use FragmentActivity , AppCompatActivity or support Fragment .
  • @NonNull annotations have been added to ViewModelProviders and ViewModelStores
  • ViewModelProviders constructor has been deprecated - please use its static methods directly
  • ViewModelProviders.DefaultFactory has been deprecated - please use ViewModelProvider.AndroidViewModelFactory
  • The static ViewModelProvider.AndroidViewModelFactory.getInstance(Application) method has been added to retrieve a static Factory suitable for creating ViewModel and AndroidViewModel instances.