สถานะที่บันทึกไว้

เขียนคอมโพเนนต์ที่เสียบได้ซึ่งบันทึกสถานะ UI เมื่อกระบวนการหยุดทำงาน และคืนค่าเมื่อกระบวนการรีสตาร์ท
อัปเดตล่าสุด รุ่นที่เสถียร ตัวเลือกถอนการอ้างสิทธิ์ รุ่นเบต้า รุ่นอัลฟ่า
7 สิงหาคม 2024 1.2.1 - - 1.3.0-alpha01

การประกาศทรัพยากร Dependency

ในการเพิ่มการขึ้นต่อกันกับSavedState คุณต้องเพิ่มที่เก็บ Google Maven ในบัญชี อ่านที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle สำหรับ ในแอปหรือโมดูล

ดึงดูด

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มการอ้างอิงของบิลด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูที่ ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนที่จะสร้างใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างรายการใหม่

ดูเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา เพื่อดูข้อมูลเพิ่มเติม

เวอร์ชัน 1.3

เวอร์ชัน 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 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ย้ายส่วนขยาย Kotlin savedstate-ktx ไปยังโมดูล Savestate พื้นฐานแล้ว (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 อนุญาตให้แนบ SavedStateRegistry ตั้งแต่เนิ่นๆ ผ่าน performAttach() ได้แล้ว
  • ตอนนี้คุณสามารถดึงข้อมูล SavedStateProvider ที่ลงทะเบียนไว้ก่อนหน้านี้จาก SavedStateRegistry ผ่าน getSavedStateProvider() ได้แล้ว
  • ไลบรารี SavedState ได้รับการเขียนใหม่ในภาษา Kotlin
    • สำหรับ SavedStateRegistryOwner นี่คือการเปลี่ยนแปลงที่เข้ากันไม่ได้กับแหล่งที่มาสำหรับคลาสที่เขียนด้วย Kotlin ตอนนี้คุณต้องลบล้างพร็อพเพอร์ตี้ savedStateRegistry แทนใช้ฟังก์ชัน getSavedStateRegistry() ก่อนหน้า
    • สำหรับ ViewTreeSavedStateRegistryOwner นี่คือการเปลี่ยนแปลงที่เข้ากันไม่ได้กับแหล่งข้อมูลสำหรับชั้นเรียนที่เขียนด้วย Kotlin ตอนนี้คุณต้องนำเข้าและใช้วิธีการส่วนขยาย Kotlin ใน View ของ androidx.savedstate.setViewTreeSavedStateRegistryOwner และ androidx.savedstate.findViewTreeSavedStateRegistryOwner โดยตรงเพื่อตั้งค่าและค้นหาเจ้าของที่ตั้งค่าไว้ก่อนหน้านี้ วิธีนี้แทนที่ API savedstate-ktx ของ findViewTreeSavedStateRegistryOwner

การเปลี่ยนแปลงลักษณะการทำงาน

  • 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 ได้รับการอัปเดตเพื่อชี้แจงเกี่ยวกับความรับผิดชอบและสัญญาที่เจ้าของมีเกี่ยวกับวิธีนำอินเทอร์เฟซไปใช้หรือเวลาที่ควรเรียกใช้เมธอดใน 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 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ชั้นเรียน SavedStateRegistry และ ViewTreeSavedStateRegistryOwner ได้รับการเขียนใหม่ใน Kotlin สำหรับ ViewTreeSavedStateRegistryOwner นี่คือการเปลี่ยนแปลงที่เข้ากันไม่ได้กับแหล่งข้อมูลสำหรับชั้นเรียนที่เขียนด้วย Kotlin ตอนนี้คุณต้องนำเข้าและใช้วิธีการส่วนขยาย Kotlin ใน View ของ androidx.savedstate.setViewTreeSavedStateRegistryOwner และ androidx.savedstate.findViewTreeSavedStateRegistryOwner โดยตรงเพื่อตั้งค่าและค้นหาเจ้าของที่ตั้งค่าไว้ก่อนหน้านี้ วิธีนี้แทนที่ API savedstate-ktx ของ findViewTreeSavedStateRegistryOwner โค้ดนี้เข้ากันได้กับไบนารีและยังคงใช้แหล่งที่มาได้สำหรับการใช้งานที่เขียนในภาษาโปรแกรม Java (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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้คุณสามารถดึงข้อมูล SavedStateProvider ที่ลงทะเบียนไว้ก่อนหน้านี้จาก SavedStateRegistry ผ่าน getSavedStateProvider() ได้แล้ว (I7ea47, b/215406268)

การเปลี่ยนแปลง API

  • ชั้นเรียน SavedStateRegistryOwner, SavedStateRegistryController และ Recreator ได้รับการเขียนใหม่ใน Kotlin สำหรับ SavedStateRegistryOwner นี่คือการเปลี่ยนแปลงที่เข้ากันไม่ได้กับแหล่งที่มาสำหรับคลาสที่เขียนด้วย Kotlin ตอนนี้คุณต้องลบล้างพร็อพเพอร์ตี้ savedStateRegistry แทนใช้ฟังก์ชัน getSavedStateRegistry() ก่อนหน้า เวอร์ชันนี้สามารถเข้ากันได้กับไบนารีและแหล่งที่มาที่เข้ากันได้สำหรับการใช้งานที่เขียนในภาษาโปรแกรม Java (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 อนุญาต การแนบเริ่มต้นของ SavedStateRegistry ผ่าน performAttach() (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 ใหม่ช่วยให้คุณเรียกข้อมูล SavedStateRegistry ที่มีอินสแตนซ์ View ได้ คุณต้องอัปเกรดเป็น Activity 1.2.0, Fragment 1.3.0 และ AppCompat 1.3.0-alpha01 ขึ้นไปจึงจะป้อนข้อมูลได้อย่างถูกต้อง
  • อาร์ติแฟกต์ savedstate-ktx: เพิ่มอาร์ติแฟกต์ savedstate-ktx ใหม่ด้วยส่วนขยาย findViewTreeSavedStateRegistryOwner() Kotlin เพื่อทำงานร่วมกับ ViewTreeSavedStateRegistryOwner

เวอร์ชัน 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 ใหม่จะช่วยให้คุณเรียก SavedStateRegistry ที่มีอินสแตนซ์นั้นให้กับอินสแตนซ์ View ได้ คุณต้องอัปเกรดเป็นกิจกรรม 1.2.0-alpha05, ส่วนย่อย 1.3.0-alpha05 และ AppCompat 1.3.0-alpha01 เพื่อป้อนข้อมูลให้ถูกต้อง (aosp/1298679)
  • เพิ่มอาร์ติแฟกต์ savedstate-ktx ใหม่ด้วยส่วนขยาย findViewTreeSavedStateRegistryOwner() Kotlin สําหรับการทํางานกับ ViewTreeSavedStateRegistryOwner (aosp/1299434)

เวอร์ชัน 1.0.0

เวอร์ชัน 1.0.0

5 กันยายน 2019

ปล่อย androidx.savedstate:savedstate:1.0.0 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์หลักของ savedState 1.0.0

androidx.savedstate เลื่อนระดับเป็นรุ่นเสถียรแล้ว นี่คือชุด API ที่อนุญาตให้นักพัฒนาซอฟต์แวร์ปลั๊กอินคอมโพเนนต์ลงในกระบวนการคืนค่า / SaveInstanceState จุดแรกเข้าหลักของ API คือ SavedStateRegistry ซึ่งจะมอบวิธีในการเรียกสถานะที่บันทึกไว้ก่อนหน้านี้โดยใช้ consumeRestoredStateForKey และลงทะเบียนการเรียกกลับไปยัง registerSavedStateProvider เพื่อระบุสถานะที่บันทึกไว้เมื่อระบบขอ

เวอร์ชัน 1.0.0-rc01

2 กรกฎาคม 2019

ปล่อย androidx.savedstate:savedstate:1.0.0-rc01 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

แก้ไขข้อบกพร่อง

  • แก้ไขกฎ Proguard ที่ไม่ถูกต้อง (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 เมื่อรีสตาร์ทคอมโพเนนต์ที่เป็นเจ้าของ

การเปลี่ยนแปลง API

  • นำทั่วไปออกจาก SavedStateRegistry<T> แล้ว
  • AbstractSavedStateRegistry และ นำ BundlableSavedStateRegistry ออกแล้ว โปรดใช้ SavedStateRegistry แบบง่ายแทน
  • BundleSavedStateRegistryOwner เปลี่ยนชื่อเป็น SavedStateRegistryOwner แล้ว

เวอร์ชัน 1.0.0-alpha01

17 ธันวาคม 2018

นี่คือรุ่นแรกของ SavedState

ฟีเจอร์ใหม่

androidx.savedstate คือ API เวอร์ชันอัลฟ่าชุดใหม่ที่อนุญาตให้นักพัฒนาซอฟต์แวร์ปลั๊กอินคอมโพเนนต์ต่างๆ ลงในกระบวนการคืนค่า / saveInstanceState จุดแรกเข้าหลักของ API คือ SavedStateRegistry<T> ซึ่งจะมอบวิธีในการเรียกสถานะที่บันทึกไว้ก่อนหน้านี้ผ่าน consumeRestoredStateForKey และลงทะเบียนการเรียกกลับไปยัง registerSavedStateProvider เพื่อระบุสถานะที่บันทึกไว้เมื่อระบบขอ