সংরক্ষিত রাজ্য

প্লাগযোগ্য উপাদানগুলি লিখুন যা একটি প্রক্রিয়া মারা গেলে UI অবস্থা সংরক্ষণ করে এবং প্রক্রিয়াটি পুনরায় চালু হলে এটি পুনরুদ্ধার করুন।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ প্রার্থী মুক্তি বিটা রিলিজ আলফা রিলিজ
13 নভেম্বর, 2024 1.2.1 - - 1.3.0-আলফা05

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

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

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

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.2.1"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.2.1"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.2.1")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.2.1")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।

প্রতিক্রিয়া

আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ 1.3

সংস্করণ 1.3.0-alpha05

13 নভেম্বর, 2024

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

KotlinX সিরিয়ালাইজেশন সমর্থন

  • SavedState এখন KotlinX সিরিয়ালাইজেশন সমর্থন অন্তর্ভুক্ত করে। আপনি encodeToSavedState এবং decodeFromSavedState পদ্ধতিগুলি ব্যবহার করে @Serializable Serializable-এর সাথে টীকাযুক্ত একটি ক্লাসকে একটি SavedState এ রূপান্তর করতে পারেন। ফিরে আসা SavedState হল Android-এ একটি নিয়মিত Bundle এবং একটি Bundle গ্রহণ করে এমন যেকোনো API ব্যবহার করতে পারে। ( I6f59f , b/374102924 )

    @Serializable
    data class Person(val firstName: String, val lastName: String)
    
    fun main() {
        val person = Person("John", "Doe")
        val encoded: SavedState = encodeToSavedState(person)
        val decoded: Person = decodeFromSavedState(encoded)
    }
    
  • একটি SavedStateRegistryOwner (যেমন, ComponentActivity , Fragment , ইত্যাদি) তে @Serializable ক্লাসগুলিকে সহজে সংরক্ষণ করার জন্য আমরা saved , একটি অলস সম্পত্তি প্রতিনিধিকে অন্তর্ভুক্ত করেছি এবং সেই ক্লাসগুলিকে স্বয়ংক্রিয়ভাবে প্রক্রিয়া মৃত্যু এবং বিনোদন জুড়ে পুনরুদ্ধার করা হয়েছে৷ অনুগ্রহ করে মনে রাখবেন saved প্রতিনিধি অলস এবং init ল্যাম্বডাকে কল করবেন না বা এটি অ্যাক্সেস না করা পর্যন্ত SavedStateRegistry এ কিছু সংরক্ষণ করবেন না। ( I66739 , b/376027806 )

    @Serializable
    data class Person(val firstName: String, val lastName: String)
    
    class MyActivity : ComponentActivity() {
        var person by saved { Person("John", "Doe") }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            this.person = Person("Jane", "Doe")
        }
    }
    
  • Lifecycle 2.9.0-alpha07 এ যোগ করা SavedStateHandle জন্য অনুরূপ একটি saved সম্পত্তি প্রতিনিধি রয়েছে।

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

  • SavedStatetoMap যোগ করুন, যেকোনও SavedState একটি নিয়মিত Map (অগভীর কপি) রূপান্তরিত করার অনুমতি দেয়। ( I487b9 , b/334076622 )
  • SavedState KMP এখন অ্যারে সমর্থন করে। ( IC0552 , b/334076622 )

সংস্করণ 1.3.0-alpha04

30 অক্টোবর, 2024

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

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

  • SavedState KMP এখন চার সমর্থন করে। ( I9ac2f , b/334076622 )
  • SavedState KMP-তে putNull এবং isNull যোগ করুন। ( Iea71d , b/334076622 )
  • একটি প্রারম্ভিক Map<String, Any> ( I9b37d , b/334076622 ) সমর্থন করে অতিরিক্ত savedState স্টেট ফ্যাক্টরি প্যারামিটার যোগ করুন
  • SavedState KMP এখন contentDeepEquals তুলনা সমর্থন করে। ( IA515c , b/334076622 )
  • SavedState KMP এখন লং সমর্থন করে। ( I4c180 , b/334076622 )

সংস্করণ 1.3.0-alpha03

অক্টোবর 16, 2024

androidx.savedstate:savedstate-*:1.3.0-alpha03 কোনো উল্লেখযোগ্য পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.3.0-alpha03-এ এই কমিট রয়েছে।

সংস্করণ 1.3.0-alpha02

2 অক্টোবর, 2024

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

কোটলিন মাল্টিপ্ল্যাটফর্ম

  • SavedState মডিউল এখন KMP সামঞ্জস্যপূর্ণ। সমর্থিত প্ল্যাটফর্মগুলিতে এখন Android, iOS, Linux, Mac, এবং JVM ডেস্কটপ পরিবেশ অন্তর্ভুক্ত রয়েছে। ( I26305 , b/334076622 )

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

  • কেএমপিতে অ্যাপ্লিকেশন অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করার জন্য একটি সামঞ্জস্যপূর্ণ উপায় প্রদান করার জন্য একটি বিমূর্ততা হিসাবে SavedState অস্বচ্ছ প্রকারের পরিচয় দিন। এটিতে একটি SavedStateReader এবং SavedStateWriter রয়েছে যাতে সেভ করা যায় এমন অবস্থা পরিবর্তন করা যায়। Android-এ, SavedState হল Bundle এর একটি টাইপ উপনাম, যা বাইনারি সামঞ্জস্য নিশ্চিত করে এবং বিদ্যমান API-কে একটি সাধারণ উৎস সেটে স্থানান্তরিত করার সুবিধা দেয়। অন্যান্য প্ল্যাটফর্মে, SavedState হল একটি Map<String, Any> উদাহরণ। ( I18575 , b/334076622 )
  // Create a new SavedState object using the savedState DSL:
  val savedState = savedState {
    putInt("currentPage", 1)
    putString("filter", "favorites")
  }

  // Read from a SavedState object
  val currentPage = savedState.read { getInt("currentPage") }

  // Edit an existing SavedState object
  savedState.write {
    remove("currentPage")
  }

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

  • SavedStateRegistry এবং SavedStateRegistryController এখন KMP সামঞ্জস্যপূর্ণ। ( Id7bb8 , b/334076622 )
  • SavedState , SavedStateWriter এবং SavedStateReader এখন KMP সামঞ্জস্যপূর্ণ। ( I26305 , b/334076622 )

সংস্করণ 1.3.0-alpha01

7 আগস্ট, 2024

androidx.savedstate:savedstate:1.3.0-alpha01 এবং androidx.savedstate:savedstate-ktx:1.3.0-alpha01 প্রকাশ করা হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিট রয়েছে।

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

  • savedstate-ktx কোটলিন এক্সটেনশনগুলি এখন বেস সেভ করা স্টেট মডিউলে সরানো হয়েছে। ( I1cc18 , b/274803094 )

দ্রষ্টব্য

  • compileSdk 35 ( 5dc41be ) এ আপডেট করুন

সংস্করণ 1.2.1

সংস্করণ 1.2.1

22 মার্চ, 2023

androidx.savedstate:savedstate:1.2.1 এবং androidx.savedstate:savedstate-ktx:1.2.1 প্রকাশিত হয়েছে। সংস্করণ 1.2.1 এই কমিট ধারণ করে.

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

সংস্করণ 1.2.0

সংস্করণ 1.2.0

জুন 29, 2022

androidx.savedstate:savedstate:1.2.0 এবং androidx.savedstate:savedstate-ktx:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0 এই কমিট ধারণ করে.

1.1.0 থেকে গুরুত্বপূর্ণ পরিবর্তন

  • SavedStateRegistryController এখন performAttach() মাধ্যমে SavedStateRegistry এর প্রাথমিক সংযুক্তির অনুমতি দেয়।
  • আপনি এখন getSavedStateProvider() মাধ্যমে একটি SavedStateRegistry থেকে পূর্বে নিবন্ধিত একটি SavedStateProvider পুনরুদ্ধার করতে পারেন।
  • Kotlin এ SavedState লাইব্রেরি আবার লেখা হয়েছে।
    • SavedStateRegistryOwner জন্য, এটি Kotlin-এ লেখা সেই ক্লাসগুলির জন্য একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - আপনাকে এখন আগের getSavedStateRegistry() ফাংশনটি বাস্তবায়নের পরিবর্তে savedStateRegistry সম্পত্তি ওভাররাইড করতে হবে।
    • ViewTreeSavedStateRegistryOwner এর জন্য, Kotlin-এ লেখা সেই ক্লাসগুলির জন্য এটি একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - আপনাকে এখন View androidx.savedstate.setViewTreeSavedStateRegistryOwner এবং androidx.savedstate.findViewTreeSavedStateRegistryOwner এবং setwistrySetryOwner সেট করার জন্য Kotlin এক্সটেনশন পদ্ধতিগুলি সরাসরি আমদানি করতে হবে এবং ব্যবহার করতে হবে। এটি findViewTreeSavedStateRegistryOwner এর savedstate-ktx API-কে প্রতিস্থাপন করে।

আচরণ পরিবর্তন

  • SavedStateRegistry আর একটি খালি বান্ডিল সংরক্ষণ করে না যদি সংরক্ষণ করার জন্য কোন অবস্থা না থাকে।

সংস্করণ 1.2.0-rc01

11 মে, 2022

androidx.savedstate:savedstate:1.2.0-rc01 এবং androidx.savedstate:savedstate-ktx:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিট রয়েছে।

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

  • SavedStateRegistryOwner Kdocs-কে আপডেট করা হয়েছে যাতে মালিকের দায়িত্ব এবং চুক্তি কীভাবে ইন্টারফেস প্রয়োগ করা উচিত বা কখন তারা SavedStateRegistryController এ পদ্ধতিগুলিকে কল করবে সে সম্পর্কে স্পষ্ট করে। ( Iefc95 , b/228887344 )

সংস্করণ 1.2.0-beta01

20 এপ্রিল, 2022

androidx.savedstate:savedstate:1.2.0-beta01 এবং androidx.savedstate:savedstate-ktx:1.2.0-beta01 প্রকাশ করা হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিট রয়েছে।

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

  • SavedStateRegistry এবং ViewTreeSavedStateRegistryOwner ক্লাস কোটলিনে পুনরায় লেখা হয়েছে। ViewTreeSavedStateRegistryOwner এর জন্য, Kotlin-এ লেখা সেই ক্লাসগুলির জন্য এটি একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - আপনাকে এখন View androidx.savedstate.setViewTreeSavedStateRegistryOwner এবং androidx.savedstate.findViewTreeSavedStateRegistryOwner এবং setwistrySetryOwner সেট করার জন্য Kotlin এক্সটেনশন পদ্ধতিগুলি সরাসরি আমদানি করতে হবে এবং ব্যবহার করতে হবে। এটি findViewTreeSavedStateRegistryOwner এর savedstate-ktx API-কে প্রতিস্থাপন করে। এটি বাইনারি সামঞ্জস্যপূর্ণ এবং জাভা প্রোগ্রামিং ভাষায় লিখিত বাস্তবায়নের জন্য উত্স সামঞ্জস্যপূর্ণ থাকে। ( b/220191285 )

সংস্করণ 1.2.0-alpha02

6 এপ্রিল, 2022

androidx.savedstate:savedstate:1.2.0-alpha02 এবং androidx.savedstate:savedstate-ktx:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02 এই কমিট ধারণ করে।

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

  • আপনি এখন getSavedStateProvider() মাধ্যমে একটি SavedStateRegistry থেকে পূর্বে নিবন্ধিত একটি SavedStateProvider পুনরুদ্ধার করতে পারেন। ( I7ea47 , b/215406268 )

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

  • SavedStateRegistryOwner , SavedStateRegistryController , এবং Recreator ক্লাসগুলি কোটলিনে পুনরায় লেখা হয়েছে৷ SavedStateRegistryOwner জন্য, এটি Kotlin-এ লেখা সেই ক্লাসগুলির জন্য একটি উৎসের অসঙ্গতিপূর্ণ পরিবর্তন - আপনাকে এখন আগের getSavedStateRegistry() ফাংশনটি বাস্তবায়নের পরিবর্তে savedStateRegistry সম্পত্তি ওভাররাইড করতে হবে। এটি জাভা প্রোগ্রামিং ভাষায় লিখিত বাস্তবায়নের জন্য বাইনারি সামঞ্জস্যপূর্ণ এবং উত্স সামঞ্জস্যপূর্ণ। ( b/220191285 )

সংস্করণ 1.2.0-alpha01

জানুয়ারী 26, 2022

androidx.savedstate:savedstate:1.2.0-alpha01 এবং androidx.savedstate:savedstate-ktx:1.2.0-alpha01 প্রকাশ করা হয়েছে। সংস্করণ 1.2.0-alpha01-এ এই কমিট রয়েছে।

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

  • SavedStateRegistryController এখন performAttach() মাধ্যমে SavedStateRegistry এর প্রাথমিক সংযুক্তির অনুমতি দেয়। ( Ice4bf )

আচরণ পরিবর্তন

  • SavedStateRegistry আর একটি খালি বান্ডিল সংরক্ষণ করে না যদি সংরক্ষণ করার জন্য কোন অবস্থা না থাকে। ( aosp/1896865 , b/203457956 )

সংস্করণ 1.1.0

সংস্করণ 1.1.0

ফেব্রুয়ারী 10, 2021

androidx.savedstate:savedstate:1.1.0 এবং androidx.savedstate:savedstate-ktx:1.1.0 প্রকাশিত হয়েছে। সংস্করণ 1.1.0 এই কমিট ধারণ করে.

1.0.0 থেকে প্রধান পরিবর্তন

  • ViewTreeSavedStateRegistryOwner API : একটি নতুন ViewTreeSavedStateRegistryOwner.get(View) API আপনাকে একটি View উদাহরণ দেওয়া SavedStateRegistry ধারণকারী পুনরুদ্ধার করতে দেয়। এটি সঠিকভাবে পূরণ করতে আপনাকে অবশ্যই Activity 1.2.0 , Fragment 1.3.0 , এবং AppCompat 1.3.0-alpha01 বা উচ্চতর আপগ্রেড করতে হবে৷
  • savedstate-ktx artifact : ViewTreeSavedStateRegistryOwner এর সাথে কাজ করার জন্য একটি findViewTreeSavedStateRegistryOwner() Kotlin এক্সটেনশনের সাথে নতুন savedstate-ktx আর্টিফ্যাক্ট যোগ করা হয়েছে।

সংস্করণ 1.1.0-rc01

16 ডিসেম্বর, 2020

androidx.savedstate:savedstate:1.1.0-rc01 এবং androidx.savedstate:savedstate-ktx:1.1.0-rc01 1.1.0-beta01 থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-rc01-এ এই কমিট রয়েছে।

সংস্করণ 1.1.0-beta01

অক্টোবর 1, 2020

androidx.savedstate:savedstate:1.1.0-beta01 এবং androidx.savedstate:savedstate-ktx:1.1.0-beta01 1.1.0-alpha01 থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-beta01-এ এই কমিট রয়েছে।

সংস্করণ 1.1.0-alpha01

20 মে, 2020

androidx.savedstate:savedstate:1.1.0-alpha01 এবং androidx.savedstate:savedstate-ktx:1.1.0-alpha01 প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-alpha01-এ এই কমিট রয়েছে।

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

  • একটি নতুন ViewTreeSavedStateRegistryOwner.get(View) API আপনাকে একটি View উদাহরণ দেওয়া SavedStateRegistry ধারণকারী পুনরুদ্ধার করার অনুমতি দেয়। এটি সঠিকভাবে পূরণ করতে আপনাকে অবশ্যই Activity 1.2.0-alpha05 , Fragment 1.3.0-alpha05 , এবং AppCompat 1.3.0-alpha01 এ আপগ্রেড করতে হবে৷ ( aosp/1298679 )
  • ViewTreeSavedStateRegistryOwner এর সাথে কাজ করার জন্য একটি findViewTreeSavedStateRegistryOwner() Kotlin এক্সটেনশনের সাথে নতুন savedstate-ktx আর্টিফ্যাক্ট যোগ করা হয়েছে। ( aosp/1299434 )

সংস্করণ 1.0.0

সংস্করণ 1.0.0

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

androidx.savedstate:savedstate:1.0.0 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।

SavedState 1.0.0 এর প্রধান বৈশিষ্ট্য

androidx.savedstate একটি স্থিতিশীল প্রকাশে স্নাতক হয়েছে৷ এটি এপিআই-এর একটি সেট যা ডেভেলপারদের পুনরুদ্ধার/সেভ ইনস্ট্যান্সস্টেট প্রক্রিয়ায় কম্পোনেন্ট প্লাগইন করতে দেয়। API-এর প্রধান এন্ট্রি পয়েন্ট হল SavedStateRegistry , যা consumeRestoredStateForKey ব্যবহার করে পূর্বে সংরক্ষিত রাজ্যগুলি পুনরুদ্ধার করার একটি উপায় প্রদান করে এবং সিস্টেমের অনুরোধ করার পরে একটি সংরক্ষিত অবস্থা প্রদানের জন্য registerSavedStateProvider এ একটি কলব্যাক নিবন্ধন করে৷

সংস্করণ 1.0.0-rc01

জুলাই 2, 2019

androidx.savedstate:savedstate:1.0.0-rc01 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।

বাগ ফিক্স

  • স্থির ভুল প্রগার্ড নিয়ম ( b/132655499 )

সংস্করণ 1.0.0-beta01

7 মে, 2019

androidx.savedstate:savedstate:1.0.0-beta01 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।

সংস্করণ 1.0.0-alpha02

13 মার্চ, 2019

androidx.savedstate:savedstate:1.0.0-alpha02 প্রকাশিত হয়েছে। androidx.savedstate:savedstate আর্টিফ্যাক্টগুলিকে androidx.savedstate:savedstate-bundle এবং androidx.savedstate:savedstate-common নকে একটি আর্টিফ্যাক্টে একত্রিত করে, কারণ এটি সংরক্ষিত স্টেট অবকাঠামোকে সরল করার এবং SavedStateRegistry থেকে জেনেরিকগুলি সরানোর সিদ্ধান্ত নেওয়া হয়েছিল। সুতরাং, আলাদা মডিউলের প্রয়োজন নেই।

এই সংস্করণে অন্তর্ভুক্ত প্রতিশ্রুতির সম্পূর্ণ তালিকা এখানে পাওয়া যাবে।

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

  • SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) যোগ করা হয়েছে। প্রদত্ত ক্লাসটি ইনস্ট্যান্ট করা হবে এবং AutoRecreated.onRecreated পদ্ধতিটি চালানো হবে যখন মালিকানাধীন উপাদান পুনরায় চালু হবে।

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

  • SavedStateRegistry<T> থেকে জেনেরিক সরানো হয়েছে
  • AbstractSavedStateRegistry এবং BundlableSavedStateRegistry সরানো হয়েছে, পরিবর্তে সাধারণ SavedStateRegistry ব্যবহার করুন
  • BundleSavedStateRegistryOwner এর নাম পরিবর্তন করে SavedStateRegistryOwner করা হয়েছে

সংস্করণ 1.0.0-alpha01

ডিসেম্বর 17, 2018

এটি SavedState এর প্রথম প্রকাশ।

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

androidx.savedstate হল আলফা এপিআই-এর একটি নতুন সেট যা ডেভেলপারদের পুনরুদ্ধার/সেভ ইনস্ট্যান্সস্টেট প্রক্রিয়ায় প্লাগইন করার অনুমতি দেয়। API-এর প্রধান এন্ট্রি পয়েন্ট হল SavedStateRegistry<T> , যা consumeRestoredStateForKey এর মাধ্যমে পূর্বে সংরক্ষিত স্টেট পুনরুদ্ধার করার একটি উপায় প্রদান করে এবং সিস্টেমের অনুরোধ করার পরে একটি সংরক্ষিত স্টেট প্রদানের জন্য registerSavedStateProvider একটি কলব্যাক নিবন্ধন করে।