Savedstate
| Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
|---|---|---|---|---|
| Ngày 22 tháng 10 năm 2025 | 1.3.3 | 1.4.0-rc01 | - | - |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc vào SavedState, bạn phải thêm kho lưu trữ Google Maven vào dự án. Hãy đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:
Groovy
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 1.4
Phiên bản 1.4.0-rc01
Ngày 22 tháng 10 năm 2025
androidx.savedstate:savedstate-*:1.4.0-rc01 được phát hành mà không có thay đổi nào kể từ phiên bản 1.4.0-beta01. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-beta01
Ngày 8 tháng 10 năm 2025
androidx.savedstate:savedstate-*:1.4.0-beta01 được phát hành mà không có thay đổi đáng kể nào kể từ bản phát hành alpha gần đây nhất. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha03
Ngày 27 tháng 8 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.4.0-alpha03. Phiên bản 1.4.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm tính năng hỗ trợ cho các loại có thể rỗng trong
encodeToSavedStatevàdecodeFromSavedState. (I79062, b/439527454) - Cập nhật Compose lên phiên bản 1.9.0. (I2b9de)
Phiên bản 1.4.0-alpha02
Ngày 13 tháng 8 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.4.0-alpha02. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha01
Ngày 30 tháng 7 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.4.0-alpha01. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm tính năng hỗ trợ gốc cho các loại có thể rỗng trong
SavedStateRegistryOwner.saved, giúp đơn giản hoá việc lưu và khôi phục các thuộc tính có thể rỗng. (Ia632, b/421325690)
Phiên bản 1.3
Phiên bản 1.3.3
Ngày 17 tháng 9 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.3. Phiên bản 1.3.3 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi không áp dụng trình bổ trợ Trình biên dịch Compose khiến các cấu phần phần mềm KMP
SavedStatebị hỏng. (Id2290, b/443965665)
Phiên bản 1.3.2
Ngày 27 tháng 8 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.2. Phiên bản 1.3.2 bao gồm các thay đổi sau.
Tính năng mới
- Thêm các mục tiêu Kotlin Multiplatform (KMP) mới vào cấu phần phần mềm SavedState
*-compose. Lifecycle hiện hỗ trợ tổng cộng các nền tảng sau: JVM (Android và Máy tính), Native (Linux, iOS, watchOS, macOS, MinGW) và Web (JavaScript, WasmJS). (/Idcf26)
Phiên bản 1.3.1
Ngày 16 tháng 7 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.1. Phiên bản 1.3.1 bao gồm các thay đổi sau.
Sửa lỗi
- Thêm tất cả các mục tiêu KMP mà chú giải hỗ trợ vào các cấu phần phần mềm
SavedState. - Thêm các mục tiêu Kotlin Multiplatform (KMP) mới vào cấu phần phần mềm
SavedState.SavedStatehiện hỗ trợ tổng cộng các nền tảng sau: JVM (Android và Máy tính), Native (Linux, iOS, watchOS, macOS, MinGW) và Web (JavaScript, WasmJS). Xin lưu ý rằng không có mục tiêu KMP mới nào được thêm vào cấu phần phần mềm*-compose, vì điều này phụ thuộc vào bản phát hành ổn định của Compose 1.9. (I062f4).
Phiên bản 1.3.0
Ngày 7 tháng 5 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
LocalSavedStateRegistryOwnerđã được di chuyển từ giao diện người dùng Compose sang mô-đunsavedstate-composemới để có thể sử dụng các API trợ giúp dựa trên Compose bên ngoài giao diện người dùng Compose. Bạn nên luôn sử dụng thành phần này khi dùng Compose UI1.9.0-alpha02trở lên, nhưng thành phần này có khả năng tương thích ngược để có thể dùng với mọi phiên bản Compose.- Các tiện ích
savedstate-ktxkotlin hiện đã được chuyển sang mô-đun savedstate cơ sở. - Giờ đây, các thực thể
SavedStateRegistryOwnerđược truy xuất thông quafindViewTreeSavedStateRegistryOwnercó thể được phân giải thông qua các thành phần mẹ rời rạc của một khung hiển thị, chẳng hạn nhưViewOverlay. Hãy xem ghi chú phát hành của core hoặc tài liệu trongViewTree.setViewTreeDisjointParentđể biết thêm thông tin về các thành phần hiển thị không liên kết.
Kotlin Multiplatform
- Mô-đun
SavedStatehiện tương thích với KMP. Các nền tảng được hỗ trợ hiện bao gồm môi trường máy tính Android, iOS, Linux, Mac và JVM. Giới thiệu kiểu mờ
SavedStatedưới dạng một lớp trừu tượng để cung cấp một cách nhất quán nhằm lưu và khôi phục trạng thái ứng dụng trong KMP. Thành phần này bao gồmSavedStateReadervàSavedStateWriterđể sửa đổi trạng thái cần lưu. Trên Android,SavedStatelà một bí danh loại choBundle, đảm bảo khả năng tương thích nhị phân và tạo điều kiện cho việc di chuyển các API hiện có sang một nhóm tài nguyên chung. Trên các nền tảng khác,SavedStatelà một phiên bảnMap<String, Any>.// 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") }
Hỗ trợ chuyển đổi tuần tự KotlinX
SavedStatehiện có hỗ trợ KotlinX Serialization. Bạn có thể chuyển đổi một lớp được chú thích bằng@SerializablethànhSavedStatebằng cách sử dụng các phương thứcencodeToSavedStatevàdecodeFromSavedState.SavedStateđược trả về làBundlethông thường trên Android và có thể được dùng bởi mọi API chấp nhậnBundle.@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) }Mặc dù hầu hết các loại (chẳng hạn như các loại nguyên thuỷ) đều được hỗ trợ trực tiếp mà không cần bất kỳ cấu hình nào, nhưng bạn có thể tìm thấy các trình chuyển đổi tuần tự bổ sung có thể dùng với
@Serializable(with = ___:class)trong góiandroidx.savedstate.serialization.serializerstrong mô-đunsavedstatevà góiandroidx.savedstate.compose.serialization.serializerstrong mô-đunsavedstate-compose.Chúng tôi cũng đã thêm
saved(một đại biểu thuộc tính từng phần) để bạn dễ dàng lưu trữ các lớp@SerializabletrongSavedStateRegistryOwner(ví dụ:ComponentActivity,Fragment, v.v.) và tự động khôi phục các lớp đó trong quá trình kết thúc và tạo lại. Xin lưu ý rằng uỷ quyềnsavedlà uỷ quyền trì hoãn và sẽ không gọi hàm lambdainithoặc lưu bất cứ nội dung nào vàoSavedStateRegistrycho đến khi được truy cập.@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") } }Có một uỷ quyền thuộc tính
savedtương tự choSavedStateHandleđược thêm vào Lifecycle2.9.0.
Phiên bản 1.3.0-rc01
Ngày 23 tháng 4 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0-rc01. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-beta01
Ngày 9 tháng 4 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0-beta01. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
- Thư viện này hiện hướng đến cấp độ ngôn ngữ Kotlin 2.0 và yêu cầu KGP 2.0.0 trở lên. (Idb6b5)
Phiên bản 1.3.0-alpha11
Ngày 26 tháng 3 năm 2025
androidx.savedstate:savedstate-*:1.3.0-alpha11 được phát hành mà không có thay đổi đáng kể nào. Phiên bản 1.3.0-alpha11 bao gồm các thay đổi sau.
Phiên bản 1.3.0-alpha10
Ngày 12 tháng 3 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha10. Phiên bản 1.3.0-alpha10 bao gồm các thay đổi sau.
Tính năng mới
- Thêm các biến thể phương thức không được cụ thể hoá cho các tập hợp
gettrongSavedStateReader. (I0b641, b/399820614) - Thêm
encodeDefaultsvàoSavedStateConfiguration, cho phép tuỳ chỉnh xem các thuộc tính có giá trị mặc định có được mã hoá hay không. (I893cc, b/395104517) - Thêm
SnapshotStateMapSerializerđể hỗ trợmutableStateMapOf. (Ie6f19, b/378895074) - Thêm
SnapshotStateListSerializerđể hỗ trợmutableStateListOf. (I4d888, b/378895074) - Thêm các phương thức thay thế
getOrNullcho các biến thểSavedStateReader.get. Các phương thức này sẽ tự động đóng gói các giá trị nguyên thuỷ. (I6228c, b/399820614)
Thay đổi về API
- Xoá
getOrElsekhỏiSavedStateReaderđể thay bằnggetOrNull() ?: else(). (I87317, b/399820614) - Xoá đối tượng sửa đổi
inlinekhỏi các phương thứcSavedStateReadervàSavedStateWriter. (If2a02, b/399820614) - Xoá các trình chuyển đổi tuần tự List và Array dành riêng cho Android khỏi API công khai (Ida293)
- Thay thế
SparseParcelableArraySerializerbằngSparseArraySerializer(I91de8) - Đảm bảo tất cả
SavedStateReader.gethoạt động nhất quán bằng cách truyền khi kiểu giá trị không khớp với kiểu trả về (I78c4a, b/399317598) - Đổi tên
SavedState*DelegatesthànhSavedState*Delegate. (I8589b, b/399629301) - Đổi tên
SavedStateConfigthànhSavedStateConfiguration. (I043a5, b/399629301)
Phiên bản 1.3.0-alpha09
Ngày 26 tháng 2 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha09. Phiên bản 1.3.0-alpha09 bao gồm các thay đổi sau.
Tính năng mới
- Thêm phương án dự phòng cho các loại tích hợp sẵn, đảm bảo rằng tất cả các loại mà
Bundlehỗ trợ đều có thể dùng vớiencodeAsSavedState/decodeFromSavedStatetheo mặc định hoặc đối với các thuộc tính trong lớp@Serializable, thông qua chú thích@Contextual. (Ic01d2) - Hỗ trợ
classDiscriminatorvàclassDiscriminatorModetrênSavedStateConfig. (I69b66, b/395104517)
Thay đổi về API
- Thêm tham số
SavedStateConfigvào các uỷ quyềnsaved()(I39b3a) - Tạo các đối tượng singleton của trình chuyển đổi tuần tự tích hợp (Ifeee4)
- Các thuộc tính
SavedStateConfighiện ở chế độ công khai, cho phép các mô-đun khác sử dụng những cấu hình này. (Ie5f49, b/378897438) - Hỗ trợ
@Serializer(with = ...)choMutableStateFlowSerializervàMutableStateSerializer(I90953) - Thêm
contentDeepToStringvàoSavedStateReader(I14d10)
Phiên bản 1.3.0-alpha08
Ngày 12 tháng 2 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha08. Phiên bản 1.3.0-alpha08 bao gồm các thay đổi sau.
Tính năng mới
- Di chuyển
MutableStateSerializersangsavedstate-composetừlifecycle-viewmodel-compose, cho phép bạn sử dụng SavedState Serialization API vớiMutableStatecủa Compose. (I4f690, b/378895074)
Thay đổi về API
- Thêm một hàm nhà máy để tạo
SavedStatetừSavedStatehiện có. (I39f9a) - Thêm tính năng hỗ trợ cho
Array<SavedState>vàList<SavedState>trongandroidx.savedstate. (Idd8a5) - Thêm tham số không bắt buộc
SavedStateConfigvào quá trình mã hoá/giải mã SavedState (I6c4c0)
Phiên bản 1.3.0-alpha07
Ngày 29 tháng 1 năm 2025
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha07. Phiên bản 1.3.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
- Thêm
MutableStateFlowSerializerđể chuyển đổikotlinx.coroutines.flow.MutableStateFlowthành chuỗi. (I6a892, b/378895070)
Thay đổi về API
- Thay thế các hàm uỷ quyền
SavedStateRegistryOwner.saved()được nạp chồng bằng các tham số mặc định (Icd1c1) - Tạo
JavaSerializableSerializervàParcelableSerializertrừu tượng (I268f6) - Xoá
T : CharSequencechung khỏiCharSequenceSerializer(Ib40bd)
Phiên bản 1.3.0-alpha06
Ngày 11 tháng 12 năm 2024
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha06. Phiên bản 1.3.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
SavedStateKMP hiện hỗ trợ:IBinder,Size,SizeF,Array<Parcelable>,SparseArray<Parcelable>và Serializable (Android). (I1ba94, b/334076622)- Thêm các thực thể
KSerializercó thể dùng để mã hoá/giải mã các loại Java và Android mà Bundle hỗ trợ bằng cách đánh dấu trường có liên quan trong lớp bằng@Serializable(with = ParcelableSerializer::class). (I8c10f, I28caf, b/376026712) - Giờ đây, các thực thể
SavedStateRegistryOwnerđược truy xuất thông quafindViewTreeSavedStateRegistryOwnercó thể được phân giải thông qua các thành phần mẹ rời rạc của một khung hiển thị, chẳng hạn nhưViewOverlay. Hãy xem ghi chú phát hành của core hoặc tài liệu trongViewTree.setViewTreeDisjointParentđể biết thêm thông tin về các thành phần hiển thị không liên kết. (Iccb33)
Thay đổi về API
- Đặt tên và sắp xếp các gói nhất quán hơn với
SavedStateRegistryOwnerDelegate(I8c135, b/376026744)
Phiên bản 1.3.0-alpha05
Ngày 13 tháng 11 năm 2024
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha05. Phiên bản 1.3.0-alpha05 bao gồm các thay đổi sau.
Hỗ trợ chuyển đổi tuần tự KotlinX
SavedStatehiện có hỗ trợ KotlinX Serialization. Bạn có thể chuyển đổi một lớp được chú thích bằng@SerializablethànhSavedStatebằng cách sử dụng các phương thứcencodeToSavedStatevàdecodeFromSavedState.SavedStateđược trả về làBundlethông thường trên Android và có thể được dùng bởi mọi API chấp nhậnBundle. (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) }Chúng tôi cũng đã thêm
saved(một đại biểu thuộc tính từng phần) để bạn dễ dàng lưu trữ các lớp@SerializabletrongSavedStateRegistryOwner(ví dụ:ComponentActivity,Fragment, v.v.) và tự động khôi phục các lớp đó trong quá trình kết thúc và tạo lại. Xin lưu ý rằng uỷ quyềnsavedlà uỷ quyền trì hoãn và sẽ không gọi hàm lambdainithoặc lưu bất cứ nội dung nào vàoSavedStateRegistrycho đến khi được truy cập. (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") } }Có một uỷ quyền thuộc tính
savedtương tự choSavedStateHandleđược thêm vào Lifecycle2.9.0-alpha07.
Thay đổi về API
- Thêm
toMapvàoSavedState, cho phép chuyển đổi mọiSavedStatethànhMapthông thường (bản sao nông). (I487b9, b/334076622) SavedStateKMP hiện hỗ trợ các mảng. (Ic0552, b/334076622)
Phiên bản 1.3.0-alpha04
Ngày 30 tháng 10 năm 2024
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha04. Phiên bản 1.3.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- SavedState KMP hiện hỗ trợ Char. (I9ac2f, b/334076622)
- Thêm
putNullvàisNullvào SavedState KMP. (Iea71d, b/334076622) - Thêm các tham số nhà máy
savedStatebổ sung hỗ trợMap<String, Any>ban đầu (I9b37d, b/334076622) - KMP SavedState hiện hỗ trợ so sánh
contentDeepEquals. (Ia515c, b/334076622) - SavedState KMP hiện hỗ trợ Long. (I4c180, b/334076622)
Phiên bản 1.3.0-alpha03
Ngày 16 tháng 10 năm 2024
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha03 mà không có thay đổi đáng kể nào. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.
Phiên bản 1.3.0-alpha02
Ngày 2 tháng 10 năm 2024
Phát hành androidx.savedstate:savedstate-*:1.3.0-alpha02. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.
Kotlin Multiplatform
- Mô-đun
SavedStatehiện tương thích với KMP. Các nền tảng được hỗ trợ hiện bao gồm môi trường máy tính Android, iOS, Linux, Mac và JVM. (I26305, b/334076622)
Tính năng mới
- Giới thiệu kiểu mờ
SavedStatedưới dạng một lớp trừu tượng để cung cấp một cách nhất quán nhằm lưu và khôi phục trạng thái ứng dụng trong KMP. Thành phần này bao gồmSavedStateReadervàSavedStateWriterđể sửa đổi trạng thái cần lưu. Trên Android,SavedStatelà một bí danh loại choBundle, đảm bảo khả năng tương thích nhị phân và tạo điều kiện cho việc di chuyển các API hiện có sang một nhóm tài nguyên chung. Trên các nền tảng khác,SavedStatelà một phiên bảnMap<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")
}
Thay đổi về API
SavedStateRegistryvàSavedStateRegistryControllerhiện tương thích với KMP. (Id7bb8, b/334076622)SavedState,SavedStateWritervàSavedStateReaderhiện tương thích với KMP. (I26305, b/334076622)
Phiên bản 1.3.0-alpha01
Ngày 7 tháng 8 năm 2024
Phát hành androidx.savedstate:savedstate:1.3.0-alpha01 và androidx.savedstate:savedstate-ktx:1.3.0-alpha01. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Các tiện ích
savedstate-ktxkotlin hiện đã được chuyển sang mô-đun savedstate cơ sở. (I1cc18, b/274803094)
Lưu ý
- Cập nhật
compileSdkthành 35 (5dc41be)
Phiên bản 1.2.1
Phiên bản 1.2.1
Ngày 22 tháng 3 năm 2023
Phát hành androidx.savedstate:savedstate:1.2.1 và androidx.savedstate:savedstate-ktx:1.2.1. Phiên bản 1.2.1 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
SavedStatehiện phụ thuộc vào Vòng đời2.6.1. (c1f621)
Phiên bản 1.2.0
Phiên bản 1.2.0
Ngày 29 tháng 6 năm 2022
Phát hành androidx.savedstate:savedstate:1.2.0 và androidx.savedstate:savedstate-ktx:1.2.0. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.1.0
SavedStateRegistryControllernay cho phép sớm đính kèmSavedStateRegistrythông quaperformAttach().- Giờ đây, bạn có thể truy xuất
SavedStateProviderđược đăng ký trước đó từSavedStateRegistryquagetSavedStateProvider(). - Thư viện
SavedStateđã được viết lại bằng Kotlin.- Đối với
SavedStateRegistryOwner, đây là một thay đổi không tương thích với nguồn cho các lớp được viết bằng Kotlin – giờ đây, bạn phải ghi đè thuộc tínhsavedStateRegistrythay vì triển khai hàmgetSavedStateRegistry()trước đó. - Đối với
ViewTreeSavedStateRegistryOwner, đây là một thay đổi không tương thích với nguồn cho các lớp được viết bằng Kotlin – giờ đây, bạn phải nhập trực tiếp và sử dụng phương thức mở rộng Kotlin trênViewcủaandroidx.savedstate.setViewTreeSavedStateRegistryOwnervàandroidx.savedstate.findViewTreeSavedStateRegistryOwnerđể đặt và tìm chủ sở hữu đã đặt trước đó. Thao tác này sẽ thay thế APIsavedstate-ktxcủafindViewTreeSavedStateRegistryOwner.
- Đối với
Thay đổi về hành vi
SavedStateRegistrykhông thể lưu Gói (Bundle) rỗng nữa nếu không có trạng thái lưu.
Phiên bản 1.2.0-rc01
Ngày 11 tháng 5 năm 2022
Phát hành androidx.savedstate:savedstate:1.2.0-rc01 và androidx.savedstate:savedstate-ktx:1.2.0-rc01. Phiên bản 1.2.0-rc01 bao gồm các thay đổi sau.
Thay đổi về tài liệu
- Kdocs
SavedStateRegistryOwnerđã được cập nhật để làm rõ trách nhiệm và hợp đồng của chủ sở hữu về cách triển khai giao diện cũng như thời điểm họ nên gọi các phương thức trênSavedStateRegistryController. (Iefc95, b/228887344)
Phiên bản 1.2.0-beta01
Ngày 20 tháng 4 năm 2022
Phát hành androidx.savedstate:savedstate:1.2.0-beta01 và androidx.savedstate:savedstate-ktx:1.2.0-beta01. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
Thay đổi API
- Các lớp
SavedStateRegistryvàViewTreeSavedStateRegistryOwnerđã được viết lại trong Kotlin. Đối vớiViewTreeSavedStateRegistryOwner, đây là thay đổi không tương thích nguồn đối với các lớp được viết bằng Kotlin – bạn phải nhập trực tiếp và sử dụng phương thức mở rộng Kotlin trênViewcủaandroidx.savedstate.setViewTreeSavedStateRegistryOwnervàandroidx.savedstate.findViewTreeSavedStateRegistryOwnerđể đặt và tìm chủ sở hữu đã đặt trước đó. Thao tác này sẽ thay thế APIsavedstate-ktxcủafindViewTreeSavedStateRegistryOwner. Tệp này tương thích với tệp nhị phân và vẫn tương thích với nguồn triển khai bằng ngôn ngữ lập trình Java. (b/220191285)
Version 1.2.0-alpha02
Ngày 6 tháng 4 năm 2022
Phát hành androidx.savedstate:savedstate:1.2.0-alpha02 và androidx.savedstate:savedstate-ktx:1.2.0-alpha02. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Giờ đây, bạn có thể truy xuất
SavedStateProviderđược đăng ký trước đó từSavedStateRegistryquagetSavedStateProvider(). (I7ea47, b/215406268)
Thay đổi API
- Các lớp
SavedStateRegistryOwner,SavedStateRegistryControllervàRecreatorđã được viết lại trong Kotlin. Đối vớiSavedStateRegistryOwner, đây là một thay đổi không tương thích với nguồn cho các lớp được viết bằng Kotlin – giờ đây, bạn phải ghi đè thuộc tínhsavedStateRegistrythay vì triển khai hàmgetSavedStateRegistry()trước đó. Tệp này tương thích với tệp nhị phân và tương thích với nguồn để triển khai bằng ngôn ngữ lập trình Java. (b/220191285)
Phiên bản 1.2.0-alpha01
Ngày 26 tháng 1 năm 2022
Phát hành androidx.savedstate:savedstate:1.2.0-alpha01 và androidx.savedstate:savedstate-ktx:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
SavedStateRegistryControllernay cho phép sớm đính kèm tệp tinSavedStateRegistrythông qua phương thứcperformAttach(). (Ice4bf)
Thay đổi về hành vi
SavedStateRegistrykhông thể lưu Gói (Bundle) rỗng nữa nếu không có trạng thái lưu. (aosp/1896865, b/203457956)
Phiên bản 1.1.0
Phiên bản 1.1.0
Ngày 10 tháng 2 năm 2021
Phát hành androidx.savedstate:savedstate:1.1.0 và androidx.savedstate:savedstate-ktx:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.
Thay đổi lớn kể từ phiên bản 1.0.0
- API
ViewTreeSavedStateRegistryOwner: APIViewTreeSavedStateRegistryOwner.get(View)mới cho phép bạn truy xuất vàoSavedStateRegistrychứa một thực thểView. Bạn cần nâng cấp lên Activity1.2.0, Fragment1.3.0và AppCompat1.3.0-alpha01trở lên để điền chính xác thông tin này. - Cấu phần phần mềm
savedstate-ktx: Thêm cấu phần phần mềmsavedstate-ktxcùng với một tiện ích KotlinfindViewTreeSavedStateRegistryOwner()để làm việc vớiViewTreeSavedStateRegistryOwner.
Phiên bản 1.1.0-rc01
Ngày 16 tháng 12 năm 2020
androidx.savedstate:savedstate:1.1.0-rc01 và androidx.savedstate:savedstate-ktx:1.1.0-rc01 được phát hành mà không có thay đổi nào kể từ 1.1.0-beta01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.1.0-beta01
Ngày 1 tháng 10 năm 2020
androidx.savedstate:savedstate:1.1.0-beta01 và androidx.savedstate:savedstate-ktx:1.1.0-beta01 được phát hành mà không có thay đổi nào kể từ 1.1.0-alpha01. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.1.0-alpha01
Ngày 20 tháng 5 năm 2020
Phát hành androidx.savedstate:savedstate:1.1.0-alpha01 và androidx.savedstate:savedstate-ktx:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- API
ViewTreeSavedStateRegistryOwner.get(View)mới cho phép bạn truy xuất vàoSavedStateRegistrychứa một thực thểView. Bạn cần nâng cấp lên Activity1.2.0-alpha05, Fragment1.3.0-alpha05và AppCompat1.3.0-alpha01trở lên để điền chính xác thông tin này. (aosp/1298679) - Thêm cấu phần phần mềm
savedstate-ktxmới cùng với một tiện ích KotlinfindViewTreeSavedStateRegistryOwner()để làm việc vớiViewTreeSavedStateRegistryOwner. (aosp/1299434)
Phiên bản 1.0.0
Phiên bản 1.0.0
Ngày 5 tháng 9 năm 2019
Phát hành androidx.savedstate:savedstate:1.0.0. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng chính của phiên bản SavedState 1.0.0
androidx.savedstate chuyển dần lên bản phát hành ổn định. Đây là một nhóm các API cho phép các nhà phát triển thêm các thành phần của trình bổ trợ vào xử lý khôi phục/saveInstanceState. Điểm truy cập chính của API là SavedStateRegistry, cung cấp cách truy xuất các trạng thái đã lưu trước đó bằng cách sử dụng consumeRestoredStateForKey và đăng ký một hàm gọi lại (callback) đến registerSavedStateProvider để cung cấp savedstate khi hệ thống yêu cầu.
Phiên bản 1.0.0-rc01
Ngày 2 tháng 7 năm 2019
Phát hành androidx.savedstate:savedstate:1.0.0-rc01. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Sửa lỗi
- Đã sửa quy tắc Proguard chưa chính xác (b/132655499)
Phiên bản 1.0.0-beta01
Ngày 7 tháng 5 năm 2019
Phát hành androidx.savedstate:savedstate:1.0.0-beta01. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Phiên bản 1.0.0-alpha02
Ngày 13 tháng 3 năm 2019
Phát hành androidx.savedstate:savedstate:1.0.0-alpha02. androidx.savedstate:savedstate gộp các cấu phần phần mềm androidx.savedstate:savedstate-bundle cùng với androidx.savedstate:savedstate-common thành một cấu phần phần mềm nhằm đơn giản hoá cơ sở hạ tầng của savedstate và xoá các phần chung khỏi SavedStateRegistry. Do đó, bạn không cần tách riêng các mô-đun.
Bạn có thể xem danh sách đầy đủ các thay đổi trong phiên bản này tại đây.
Tính năng mới
- Thêm
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ). Khởi tạo lớp có sẵn được khởi tạo và chạy phương thứcAutoRecreated.onRecreatedkhi thành phần thuộc sở hữu khởi động lại.
Thay đổi về API
- Xoá bỏ các phần chung
SavedStateRegistry<T> - Lớp AbstractSavedStateRegistry và BundlableSavedStateRegistry đã bị xoá, hãy thay thế bằng lớp
SavedStateRegistry BundleSavedStateRegistryOwnerđược đổi tên thànhSavedStateRegistryOwner.
Phiên bản 1.0.0-alpha01
Ngày 17 tháng 12 năm 2018
Đây là bản phát hành đầu tiên của SavedState.
Tính năng mới
androidx.savedstate là một nhóm các API cho phép các nhà phát triển thêm các thành phần của trình bổ trợ vào xử lý khôi phục/saveInstanceState. Điểm truy cập chính của API là SavedStateRegistry<T>, cung cấp cách truy xuất trạng thái đã lưu trước đó thông qua consumeRestoredStateForKey và đăng ký hàm gọi lại đến registerSavedStateProvider để cung cấp một savedstate khi hệ thống yêu cầu.