Savedstate
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 2025년 10월 22일 | 1.3.3 | 1.4.0-rc01 | - | - |
종속 항목 선언
SavedState에 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.
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") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.4
버전 1.4.0-rc01
2025년 10월 22일
androidx.savedstate:savedstate-*:1.4.0-rc01이 1.4.0-beta01 이후 변경사항 없이 출시되었습니다. 버전 1.4.0-rc01에는 이러한 커밋이 포함되어 있습니다.
버전 1.4.0-beta01
2025년 10월 8일
androidx.savedstate:savedstate-*:1.4.0-beta01은 마지막 알파 이후 중요한 변경사항 없이 출시되었습니다. 버전 1.4.0-beta01에는 이 커밋이 포함되어 있습니다.
버전 1.4.0-alpha03
2025년 8월 27일
androidx.savedstate:savedstate-*:1.4.0-alpha03이 출시되었습니다. 버전 1.4.0-alpha03에는 이 커밋이 포함되어 있습니다.
API 변경사항
encodeToSavedState및decodeFromSavedState에 null 허용 유형 지원 추가 (I79062, b/439527454)- Compose를 1.9.0으로 업데이트 (I2b9de)
버전 1.4.0-alpha02
2025년 8월 13일
androidx.savedstate:savedstate-*:1.4.0-alpha02이 출시되었습니다. 버전 1.4.0-alpha02에는 이 커밋이 포함되어 있습니다.
버전 1.4.0-alpha01
2025년 7월 30일
androidx.savedstate:savedstate-*:1.4.0-alpha01이 출시되었습니다. 버전 1.4.0-alpha01에는 이러한 커밋이 포함되어 있습니다.
API 변경사항
SavedStateRegistryOwner.saved에서 null 허용 유형에 대한 네이티브 지원을 추가하여 null 허용 속성의 저장 및 복원을 간소화합니다. (Ia632, b/421325690)
버전 1.3
버전 1.3.3
2025년 9월 17일
androidx.savedstate:savedstate-*:1.3.3이 출시되었습니다. 버전 1.3.3에는 이러한 커밋이 포함되어 있습니다.
버그 수정
- Compose 컴파일러 플러그인이 적용되지 않아
SavedStateKMP 아티팩트가 손상되는 오류가 수정되었습니다. (Id2290, b/443965665)
버전 1.3.2
2025년 8월 27일
androidx.savedstate:savedstate-*:1.3.2이 출시되었습니다. 버전 1.3.2에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- SavedState
*-compose아티팩트에 새 Kotlin Multiplatform (KMP) 타겟 추가 이제 Lifecycle은 JVM (Android 및 데스크톱), 네이티브 (Linux, iOS, watchOS, macOS, MinGW), 웹 (JavaScript, WasmJS) 등 총 3가지 플랫폼을 지원합니다. (/Idcf26)
버전 1.3.1
2025년 7월 16일
androidx.savedstate:savedstate-*:1.3.1이 출시되었습니다. 버전 1.3.1에는 이러한 커밋이 포함되어 있습니다.
버그 수정
- 주석으로 지원되는 모든 KMP 타겟을
SavedState아티팩트에 추가합니다. SavedState아티팩트에 새로운 Kotlin 멀티플랫폼 (KMP) 타겟이 추가되었습니다. 이제SavedState는 JVM (Android 및 데스크톱), 네이티브 (Linux, iOS, watchOS, macOS, MinGW), 웹 (JavaScript, WasmJS) 등 총 3가지 플랫폼을 지원합니다. Compose 1.9의 안정적인 버전에 따라 달라지므로*-compose아티팩트에 새 KMP 타겟이 추가되지 않았습니다. (I062f4)
버전 1.3.0
2025년 5월 7일
androidx.savedstate:savedstate-*:1.3.0이 출시되었습니다. 버전 1.3.0에는 이러한 커밋이 포함되어 있습니다.
1.2.0 이후 중요 변경사항
LocalSavedStateRegistryOwner가 Compose UI에서 새savedstate-compose모듈로 이동되어 Compose 기반 도우미 API를 Compose UI 외부에서 사용할 수 있습니다. Compose UI1.9.0-alpha02이상을 사용할 때는 항상 사용해야 하지만 모든 버전의 Compose와 함께 사용할 수 있도록 이전 버전과 호환됩니다.- 이제
savedstate-ktxKotlin 확장 프로그램이 기본 savedstate 모듈로 이동되었습니다. - 이제
findViewTreeSavedStateRegistryOwner를 통해 검색된SavedStateRegistryOwner인스턴스를ViewOverlay와 같은 뷰의 분리된 상위 요소를 통해 해결할 수 있습니다. 분리된 뷰 상위에 관한 자세한 내용은 핵심 출시 노트 또는ViewTree.setViewTreeDisjointParent의 문서를 참고하세요.
Kotlin 멀티플랫폼
- 이제
SavedState모듈이 KMP와 호환됩니다. 이제 지원되는 플랫폼에 Android, iOS, Linux, Mac, JVM 데스크톱 환경이 포함됩니다. KMP에서 애플리케이션 상태를 저장하고 복원하는 일관된 방법을 제공하는 추상화로
SavedState불투명 유형 도입 저장할 상태를 수정하기 위한SavedStateReader및SavedStateWriter가 포함되어 있습니다. Android에서SavedState는Bundle의 유형 별칭으로, 바이너리 호환성을 보장하고 기존 API를 공통 소스 세트로 쉽게 이전할 수 있도록 지원합니다. 다른 플랫폼에서SavedState는Map<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") }
KotlinX 직렬화 지원
이제
SavedState에 KotlinX Serialization 지원이 포함됩니다.@Serializable로 주석이 추가된 클래스를encodeToSavedState및decodeFromSavedState메서드를 사용하여SavedState로 변환할 수 있습니다. 반환된SavedState는 Android의 일반Bundle이며Bundle를 허용하는 모든 API에서 사용할 수 있습니다.@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) }대부분의 유형 (예: 기본 유형)은 구성 없이 직접 지원되지만
@Serializable(with = ___:class)와 함께 사용할 수 있는 추가 직렬 변환기는savedstate모듈의androidx.savedstate.serialization.serializers패키지와savedstate-compose모듈의androidx.savedstate.compose.serialization.serializers패키지에서 찾을 수 있습니다.또한
SavedStateRegistryOwner(예:saved@SerializableComponentActivity,Fragment등)을 저장하고 프로세스 종료 및 재생성 시 이러한 클래스가 자동으로 복원되도록 합니다.saved위임은 지연되고 액세스할 때까지init람다를 호출하거나SavedStateRegistry에 아무것도 저장하지 않습니다.@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에 추가된SavedStateHandle의 유사한saved속성 위임자가 있습니다.
버전 1.3.0-rc01
2025년 4월 23일
androidx.savedstate:savedstate-*:1.3.0-rc01이 출시되었습니다. 버전 1.3.0-rc01에는 이러한 커밋이 포함되어 있습니다.
버전 1.3.0-beta01
2025년 4월 9일
androidx.savedstate:savedstate-*:1.3.0-beta01이 출시되었습니다. 버전 1.3.0-beta01에는 이러한 커밋이 포함되어 있습니다.
종속 항목 업데이트
- 이제 이 라이브러리는 Kotlin 2.0 언어 수준을 타겟팅하며 KGP 2.0.0 이상이 필요합니다. (Idb6b5)
버전 1.3.0-alpha11
2025년 3월 26일
androidx.savedstate:savedstate-*:1.3.0-alpha11은 중요한 공개 변경사항 없이 출시되었습니다. 버전 1.3.0-alpha11에는 이러한 커밋이 포함되어 있습니다.
버전 1.3.0-alpha10
2025년 3월 12일
androidx.savedstate:savedstate-*:1.3.0-alpha10이 출시되었습니다. 버전 1.3.0-alpha10에는 이 커밋이 포함되어 있습니다.
새로운 기능
SavedStateReader에서get컬렉션의 비구체화 메서드 변형 추가 (I0b641, b/399820614)encodeDefaults을SavedStateConfiguration에 추가하여 기본값이 있는 속성을 인코딩할지 여부를 맞춤설정할 수 있도록 함 (I893cc, b/395104517)mutableStateMapOf를 지원하는SnapshotStateMapSerializer추가 (Ie6f19, b/378895074)mutableStateListOf를 지원하는SnapshotStateListSerializer추가 (I4d888, b/378895074)SavedStateReader.get변형에getOrNull대체 메서드 추가 이러한 메서드는 기본 값을 자동 박싱합니다. (I6228c, b/399820614)
API 변경사항
getOrNull() ?: else()를 위해SavedStateReader에서getOrElse를 삭제합니다. (I87317, b/399820614)SavedStateReader및SavedStateWriter메서드에서inline수정자를 삭제합니다. (If2a02, b/399820614)- 공개 API에서 내장 Android 전용 목록 및 배열 직렬 변환기 삭제 (Ida293)
SparseParcelableArraySerializer을SparseArraySerializer로 대체 (I91de8)- 값 유형이 반환 유형과 일치하지 않는 경우 예외를 발생시켜 모든
SavedStateReader.get가 일관되게 동작하도록 함 (I78c4a, b/399317598) SavedState*Delegates의 이름을SavedState*Delegate로 바꿉니다. (I8589b, b/399629301)SavedStateConfig의 이름을SavedStateConfiguration로 바꿉니다. (I043a5, b/399629301)
버전 1.3.0-alpha09
2025년 2월 26일
androidx.savedstate:savedstate-*:1.3.0-alpha09이 출시되었습니다. 버전 1.3.0-alpha09에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 기본 제공 유형의 대체 항목을 추가하여
Bundle에서 지원하는 모든 유형을 기본적으로encodeAsSavedState/decodeFromSavedState와 함께 사용하거나@Serializable클래스의 속성의 경우@Contextual주석을 통해 사용할 수 있도록 합니다. (Ic01d2) SavedStateConfig에서classDiscriminator및classDiscriminatorMode지원을 포함합니다. (I69b66, b/395104517)
API 변경사항
saved()위임에SavedStateConfig매개변수 추가 (I39b3a)- 기본 제공 직렬 변환기를 싱글톤 객체로 만듦 (Ifeee4)
- 이제
SavedStateConfig속성이 공개되어 다른 모듈에서 이러한 구성을 사용할 수 있습니다. (Ie5f49, b/378897438) MutableStateFlowSerializer및MutableStateSerializer에@Serializer(with = ...)지원 (I90953)SavedStateReader에contentDeepToString추가 (I14d10)
버전 1.3.0-alpha08
2025년 2월 12일
androidx.savedstate:savedstate-*:1.3.0-alpha08이 출시되었습니다. 버전 1.3.0-alpha08에는 이 커밋이 포함되어 있습니다.
새로운 기능
lifecycle-viewmodel-compose에서MutableStateSerializer를savedstate-compose로 이동하여 Compose의MutableState로 SavedState 직렬화 API를 사용할 수 있습니다. (I4f690, b/378895074)
API 변경사항
- 기존
SavedState에서SavedState를 만드는 팩토리 함수를 추가합니다. (I39f9a) androidx.savedstate에Array<SavedState>및List<SavedState>지원을 추가합니다. (Idd8a5)- SavedState 인코딩/디코딩에
SavedStateConfig선택적 매개변수 추가 (I6c4c0)
버전 1.3.0-alpha07
2025년 1월 29일
androidx.savedstate:savedstate-*:1.3.0-alpha07이 출시되었습니다. 버전 1.3.0-alpha07에는 이 커밋이 포함되어 있습니다.
새로운 기능
kotlinx.coroutines.flow.MutableStateFlow직렬화를 위한MutableStateFlowSerializer추가 (I6a892, b/378895070)
API 변경사항
- 오버로드된
SavedStateRegistryOwner.saved()위임 함수를 기본 매개변수로 대체 (Icd1c1) JavaSerializableSerializer및ParcelableSerializer추상화 (I268f6)CharSequenceSerializer에서 일반T : CharSequence삭제 (Ib40bd)
버전 1.3.0-alpha06
2024년 12월 11일
androidx.savedstate:savedstate-*:1.3.0-alpha06이 출시되었습니다. 버전 1.3.0-alpha06에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
SavedStateKMP는 이제IBinder,Size,SizeF,Array<Parcelable>,SparseArray<Parcelable>, Serializable (Android)을 지원합니다. (I1ba94, b/334076622)- 클래스의 관련 필드를
@Serializable(with = ParcelableSerializer::class)로 표시하여 번들에서 지원하는 Java 및 Android 유형을 인코딩/디코딩하는 데 사용할 수 있는KSerializer인스턴스를 추가합니다. (I8c10f, I28caf, b/376026712) - 이제
findViewTreeSavedStateRegistryOwner를 통해 검색된SavedStateRegistryOwner인스턴스를ViewOverlay와 같은 뷰의 분리된 상위 요소를 통해 해결할 수 있습니다. 분리된 뷰 상위에 관한 자세한 내용은 핵심 출시 노트 또는ViewTree.setViewTreeDisjointParent의 문서를 참고하세요. (Iccb33)
API 변경사항
- 이름 지정 및 패키지 구성을
SavedStateRegistryOwnerDelegate와 더 일관되게 만듦 (I8c135, b/376026744)
버전 1.3.0-alpha05
2024년 11월 13일
androidx.savedstate:savedstate-*:1.3.0-alpha05이 출시되었습니다. 버전 1.3.0-alpha05에는 이 커밋이 포함되어 있습니다.
KotlinX 직렬화 지원
이제
SavedState에 KotlinX Serialization 지원이 포함됩니다.@Serializable로 주석이 추가된 클래스를encodeToSavedState및decodeFromSavedState메서드를 사용하여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(예:saved@SerializableComponentActivity,Fragment등)을 저장하고 프로세스 종료 및 재생성 시 이러한 클래스가 자동으로 복원되도록 합니다.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속성 위임자가 있습니다.
API 변경사항
SavedState에toMap를 추가하여 모든SavedState를 일반Map(얕은 복사)로 변환할 수 있습니다. (I487b9, b/334076622)- 이제
SavedStateKMP가 배열을 지원합니다. (Ic0552, b/334076622)
버전 1.3.0-alpha04
2024년 10월 30일
androidx.savedstate:savedstate-*:1.3.0-alpha04이 출시되었습니다. 버전 1.3.0-alpha04에는 이러한 커밋이 포함되어 있습니다.
API 변경사항
- 이제 SavedState KMP가 Char를 지원합니다. (I9ac2f, b/334076622)
- SavedState KMP에
putNull및isNull추가 (Iea71d, b/334076622) - 초기
Map<String, Any>를 지원하는 추가savedState팩토리 매개변수 추가 (I9b37d, b/334076622) - 이제 SavedState KMP가
contentDeepEquals비교를 지원합니다. (Ia515c, b/334076622) - 이제 SavedState KMP가 Long을 지원합니다. (I4c180, b/334076622)
버전 1.3.0-alpha03
2024년 10월 16일
androidx.savedstate:savedstate-*:1.3.0-alpha03이 출시되었습니다. 버전 1.3.0-alpha03에는 이러한 커밋이 포함되어 있습니다.
버전 1.3.0-alpha02
2024년 10월 2일
androidx.savedstate:savedstate-*:1.3.0-alpha02이 출시되었습니다. 버전 1.3.0-alpha02에는 이러한 커밋이 포함되어 있습니다.
Kotlin 멀티플랫폼
- 이제
SavedState모듈이 KMP와 호환됩니다. 이제 지원되는 플랫폼에 Android, iOS, Linux, Mac, JVM 데스크톱 환경이 포함됩니다. (I26305, b/334076622)
새로운 기능
- KMP에서 애플리케이션 상태를 저장하고 복원하는 일관된 방법을 제공하는 추상화로
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")
}
API 변경사항
- 이제
SavedStateRegistry및SavedStateRegistryController가 KMP와 호환됩니다. (Id7bb8, b/334076622) SavedState,SavedStateWriter,SavedStateReader가 이제 KMP와 호환됩니다. (I26305, b/334076622)
버전 1.3.0-alpha01
2024년 8월 7일
androidx.savedstate:savedstate:1.3.0-alpha01 및 androidx.savedstate:savedstate-ktx:1.3.0-alpha01이 출시되었습니다. 버전 1.3.0-alpha01에는 이 커밋이 포함되어 있습니다.
API 변경사항
- 이제
savedstate-ktxKotlin 확장 프로그램이 기본 savedstate 모듈로 이동되었습니다. (I1cc18, b/274803094)
참고
compileSdk을 35로 업데이트 (5dc41be)
버전 1.2.1
버전 1.2.1
2023년 3월 22일
androidx.savedstate:savedstate:1.2.1 및 androidx.savedstate:savedstate-ktx:1.2.1이 출시되었습니다. 버전 1.2.1에 포함된 커밋을 확인하세요.
종속 항목 업데이트
- 이제
SavedState가 Lifecycle2.6.1에 종속됩니다. (c1f621)
버전 1.2.0
버전 1.2.0
2022년 6월 29일
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를 검색할 수 있습니다. SavedState라이브러리가 Kotlin으로 다시 작성되었습니다.SavedStateRegistryOwner의 경우 Kotlin으로 작성된 클래스에는 소스와 호환되지 않는 변경사항입니다. 이제 이전getSavedStateRegistry()함수를 구현하는 대신savedStateRegistry속성을 재정의해야 합니다.ViewTreeSavedStateRegistryOwner의 경우 Kotlin으로 작성된 클래스에는 소스와 호환되지 않는 변경사항입니다. 이제 이전에 설정된 소유자를 설정하고 찾으려면androidx.savedstate.setViewTreeSavedStateRegistryOwner와androidx.savedstate.findViewTreeSavedStateRegistryOwner의View에서 Kotlin 확장 메서드를 직접 가져와서 사용해야 합니다. 이는findViewTreeSavedStateRegistryOwner의savedstate-ktxAPI를 대체합니다.
동작 변경사항
SavedStateRegistry는 저장할 상태가 없는 경우 더 이상 빈 번들을 저장하지 않습니다.
버전 1.2.0-rc01
2022년 5월 11일
androidx.savedstate:savedstate:1.2.0-rc01 및 androidx.savedstate:savedstate-ktx:1.2.0-rc01이 출시되었습니다. 버전 1.2.0-rc01에 포함된 커밋을 확인하세요.
문서 변경사항
- 인터페이스를 구현하는 방식 또는
SavedStateRegistryController에서 메서드를 호출해야 하는 경우에 대하여 소유자가 갖는 책임 및 계약을 명확하게 설명하기 위하여SavedStateRegistryOwnerKdoc이 업데이트되었습니다. (Iefc95, b/228887344)
버전 1.2.0-beta01
2022년 4월 20일
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으로 작성된 클래스에는 소스와 호환되지 않는 변경사항입니다. 이제 이전에 설정된 소유자를 설정하고 찾으려면androidx.savedstate.setViewTreeSavedStateRegistryOwner와androidx.savedstate.findViewTreeSavedStateRegistryOwner의View에서 Kotlin 확장 메서드를 직접 가져와서 사용해야 합니다. 이는findViewTreeSavedStateRegistryOwner의savedstate-ktxAPI를 대체합니다. 자바 프로그래밍 언어로 작성된 구현의 경우 바이너리와 호환되고 소스와 호환됩니다. (b/220191285)
버전 1.2.0-alpha02
2022년 4월 6일
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)
API 변경사항
SavedStateRegistryOwner,SavedStateRegistryController,Recreator클래스가 Kotlin으로 다시 작성되었습니다.SavedStateRegistryOwner의 경우 Kotlin으로 작성된 클래스에는 소스와 호환되지 않는 변경사항입니다. 이제 이전getSavedStateRegistry()함수를 구현하는 대신savedStateRegistry속성을 재정의해야 합니다. 자바 프로그래밍 언어로 작성된 구현의 경우 바이너리와 호환되고 소스와 호환됩니다. (b/220191285)
버전 1.2.0-alpha01
2022년 1월 26일
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
2021년 2월 10일
androidx.savedstate:savedstate:1.1.0 및 androidx.savedstate:savedstate-ktx:1.1.0이 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.
1.0.0 이후 주요 변경사항
ViewTreeSavedStateRegistryOwnerAPI: 새로운ViewTreeSavedStateRegistryOwner.get(View)API를 사용하면 지정된View인스턴스에 포함된SavedStateRegistry를 가져올 수 있습니다. 이를 올바르게 사용하려면 Activity1.2.0, Fragment1.3.0, AppCompat1.3.0-alpha01이상으로 업그레이드해야 합니다.savedstate-ktx아티팩트: 새savedstate-ktx아티팩트가ViewTreeSavedStateRegistryOwner와의 호환을 위해findViewTreeSavedStateRegistryOwner()Kotlin 확장 메서드와 함께 추가되었습니다.
버전 1.1.0-rc01
2020년 12월 16일
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
2020년 10월 1일
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
2020년 5월 20일
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를 검색할 수 있습니다. Activity1.2.0-alpha05, Fragment1.3.0-alpha05, AppCompat1.3.0-alpha01로 업그레이드하여 올바르게 채워야 합니다. (aosp/1298679) ViewTreeSavedStateRegistryOwner작업을 위해findViewTreeSavedStateRegistryOwner()Kotlin 확장 프로그램이 있는 새로운savedstate-ktx아티팩트가 추가되었습니다. (aosp/1299434)
버전 1.0.0
버전 1.0.0
2019년 9월 5일
androidx.savedstate:savedstate:1.0.0이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.
SavedState 1.0.0의 주요 기능
androidx.savedstate에서 안정화 릴리스로 바뀌었습니다. 개발자가 restore/saveInstanceState 프로세스에 구성요소를 플러그인할 수 있는 API 세트입니다. API의 기본 진입점은 SavedStateRegistry이며 consumeRestoredStateForKey를 사용해 이전 savedstate를 검색하고 시스템에서 요청 시 savedstate를 제공하도록 registerSavedStateProvider 콜백을 등록하는 방법을 제공합니다.
버전 1.0.0-rc01
2019년 7월 2일
androidx.savedstate:savedstate:1.0.0-rc01이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.
버그 수정
- 잘못된 proguard 규칙이 수정되었습니다. (b/132655499)
버전 1.0.0-beta01
2019년 5월 7일
androidx.savedstate:savedstate:1.0.0-beta01이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.
버전 1.0.0-alpha02
2019년 3월 13일
androidx.savedstate:savedstate:1.0.0-alpha02가 출시되었습니다. androidx.savedstate:savedstate는 savedstate 인프라를 단순화하고 SavedStateRegistry에서 제네릭을 삭제하도록 결정되었기 때문에 아티팩트 androidx.savedstate:savedstate-bundle 및 androidx.savedstate:savedstate-common을 단일 아티팩트로 결합합니다. 따라서 별도의 모듈이 필요하지 않습니다.
이 버전에 포함된 커밋의 전체 목록은 여기에서 확인할 수 있습니다.
새로운 기능
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz )가 추가되었습니다. 소유한 구성요소가 다시 시작되면 제공된 클래스가 인스턴스화되며AutoRecreated.onRecreated메서드가 실행됩니다.
API 변경사항
SavedStateRegistry<T>에서 제네릭이 삭제되었습니다.- AbstractSavedStateRegistry 및 BundlableSavedStateRegistry가 삭제되고 대신 간단한
SavedStateRegistry를 사용합니다. BundleSavedStateRegistryOwner에서SavedStateRegistryOwner로 이름이 변경되었습니다.
버전 1.0.0-alpha01
2018년 12월 17일
SavedState의 최초 릴리스입니다.
새로운 기능
androidx.savedstate는 개발자가 restore/saveInstanceState 프로세스에 구성요소를 플러그인할 수 있는 새로운 알파 API 세트입니다. API의 기본 진입점은 SavedStateRegistry<T>이며 consumeRestoredStateForKey를 통해 이전 savedstate를 검색하고 시스템에서 요청 시 savedstate를 제공하도록 registerSavedStateProvider 콜백을 등록하는 방법을 제공합니다.