Savedstate

Viết các thành phần thay thế được để lưu trạng thái giao diện người dùng khi một quy trình ngừng hoạt động và khôi phục trạng thái này khi quy trình đó bắt đầu lại.
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 29 tháng 6 năm 2022 1.2.0 - - -

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 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.2.0"

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

Kotlin

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

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

Để 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.

Báo lỗi mới

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.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.0androidx.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

  • SavedStateRegistryController nay cho phép sớm đính kèm SavedStateRegistry thông qua performAttach().
  • Giờ đây, bạn có thể truy xuất SavedStateProvider được đăng ký trước đó từ SavedStateRegistry qua getSavedStateProvider().
  • 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ính savedStateRegistry thay vì triển khai hàm getSavedStateRegistry() 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ên View của androidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwner để đặt và tìm chủ sở hữu đã đặt trước đó. Thao tác này sẽ thay thế API savedstate-ktx của findViewTreeSavedStateRegistryOwner.

Thay đổi về hành vi

  • SavedStateRegistry khô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-rc01androidx.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ên SavedStateRegistryController. (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-beta01androidx.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 SavedStateRegistryViewTreeSavedStateRegistryOwner đã được viết lại trong Kotlin. Đối với ViewTreeSavedStateRegistryOwner, đâ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ên View của androidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwner để đặt và tìm chủ sở hữu đã đặt trước đó. Thao tác này sẽ thay thế API savedstate-ktx của findViewTreeSavedStateRegistryOwner. 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-alpha02androidx.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ừ SavedStateRegistry qua getSavedStateProvider(). (I7ea47, b/215406268)

Thay đổi API

  • Các lớp SavedStateRegistryOwner, SavedStateRegistryControllerRecreator đã được viết lại trong 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ính savedStateRegistry thay vì triển khai hàm getSavedStateRegistry() 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-alpha01androidx.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

  • SavedStateRegistryController nay cho phép sớm đính kèm tệp tin SavedStateRegistry thông qua phương thức performAttach(). (Ice4bf)

Thay đổi về hành vi

  • SavedStateRegistry khô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.0androidx.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: API ViewTreeSavedStateRegistryOwner.get(View) mới cho phép bạn truy xuất vào SavedStateRegistry chứa một thực thể View. Bạn cần nâng cấp lên Activity 1.2.0, Fragment 1.3.0AppCompat 1.3.0-alpha01 trở 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ềm savedstate-ktx cùng với một tiện ích Kotlin findViewTreeSavedStateRegistryOwner() để làm việc với ViewTreeSavedStateRegistryOwner.

Phiên bản 1.1.0-rc01

Ngày 16 tháng 12 năm 2020

androidx.savedstate:savedstate:1.1.0-rc01androidx.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-beta01androidx.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-alpha01androidx.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ào SavedStateRegistry chứa một thực thể View. Bạn cần nâng cấp lên Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05AppCompat 1.3.0-alpha01 trở 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-ktx mới cùng với một tiện ích Kotlin findViewTreeSavedStateRegistryOwner() để làm việc với ViewTreeSavedStateRegistryOwner. (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

androidx.savedstate:savedstate:1.0.0-beta01 được phát hành. 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ức AutoRecreated.onRecreated khi 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ành SavedStateRegistryOwner.

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.