DataStore
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 1 tháng 5 năm 2024 | 1.1.1 | - | - | - |
Khai báo phần phụ thuộc
Để thêm phần phụ thuộc trên DataStore, bạn phải thêm kho lưu trữ Google Maven vào dự án. Hãy đọc bài viết về Kho lưu trữ Maven của Google để biết thêm thông tin.
Có hai cách triển khai DataStore: Preferences và Proto. Hãy chọn một trong hai. Bạn cũng có thể thêm các phần phụ thuộc ngoài Android để triển khai.
Thêm các phần phụ thuộc cần thiết để triển khai trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
Preferences DataStore
Groovy
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation "androidx.datastore:datastore-preferences:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.1" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.1") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.1" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.1") }
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.1
Phiên bản 1.1.1
Ngày 1 tháng 5 năm 2024
Phát hành androidx.datastore:datastore-*:1.1.1
. Phiên bản 1.1.1 bao gồm các thay đổi sau.
Sửa lỗi
- Giảm thiểu cảnh báo sai của Linux về "Tình trạng tắc nghẽn tài nguyên sẽ xảy ra" lỗi trong một trường hợp góc, nhiều thực thể
DataStore
cố ghi từ các quy trình khác nhau bằng cách sao lưu khoá tệp.
Phiên bản 1.1.0
Ngày 17 tháng 4 năm 2024
Phát hành androidx.datastore:datastore-*:1.1.0
. Phiên bản 1.1.0 bao gồm các thay đổi sau.
Thay đổi lớn kể từ bản phát hành 1.0.0
Vui lòng xem ghi chú phát hành từ phiên bản alpha và beta của 1.1.0 để biết thêm thông tin. Một số bản cập nhật chính trong 1.1.0 là:
- DataStore hiện hỗ trợ nhiều quy trình truy cập vào cùng một tệp, có hỗ trợ khả năng quan sát giữa các quy trình.
- Giao diện Bộ nhớ mới cho phép bạn tuỳ chỉnh cách lưu trữ hoặc chuyển đổi tuần tự các mô hình dữ liệu của mình.
- Giờ đây, bạn có thể sử dụng DataStore trong các dự án Kotlin Multiplatform.
Phiên bản 1.1.0-rc01
Ngày 3 tháng 4 năm 2024
Phát hành androidx.datastore:datastore-*:1.1.0-rc01
. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục tình trạng suy giảm hiệu suất, trong đó các lệnh gọi
updateData
không tối ưu hoá quá trình ghi vào ổ đĩa nếu dữ liệu mới giống với dữ liệu cũ (d64cfb5) - Khắc phục một tình huống tương tranh trong đó
MultiProcess
DataStore
có thể bỏ lỡ các trường hợp không hợp lệ trong quá trình khởi chạy. ((b/326141553),(094c2dd))
Phiên bản 1.1.0-beta02
Ngày 6 tháng 3 năm 2024
Phát hành androidx.datastore:datastore-*:1.1.0-beta02
. Phiên bản 1.1.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Mức độ cải thiện hiệu suất trên
DataStore
chỉ thu thập thông báo cập nhật khi quan sát thấy thông báo đó. (b/267792241)- Lưu ý rằng thay đổi này có thể kích hoạt
UncompletedCoroutinesError
trong các chương trình kiểm thử nếu bạn đang sử dụng thư viện kiểm thử Coroutine. Hãy nhớ truyềnTestScope.backgroundScope
khi khởi chạyDataStore
trong các chương trình kiểm thử để tránh vấn đề này.
- Lưu ý rằng thay đổi này có thể kích hoạt
- Khắc phục vấn đề các lệnh gọi
updateData
lồng nhau trên cùng một phiên bản sẽ gây tắc nghẽn. (b/241760537) - Làm cho
DataStore
không còn gửiIOExceptions
nếu không xoá đượcSharedPreferences
trong quá trình di chuyển. (b/195553816) - Khắc phục vấn đề không đổi tên được tệp trong
updateData
ở các môi trường JVM không phải Android. (b/203087070) - Khắc phục vấn đề
CorruptionException
không được xử lý sau khi khởi chạyDataStore
. (b/289582516)
Phiên bản 1.1.0-beta01
Ngày 10 tháng 1 năm 2024
androidx.datastore:datastore-*:1.1.0-beta01
được phát hành mà không có thay đổi nào kể từ 1.1.0-alpha07
. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.1.0-alpha07
Ngày 29 tháng 11 năm 2023
Phát hành androidx.datastore:datastore-*:1.1.0-alpha07
. Phiên bản 1.1.0-alpha07 bao gồm các thay đổi sau.
Thay đổi về API
- Các phương thức
MultiProcessDataStoreFactory
không còn là thử nghiệm nữa.Chú giải@ExperimentalMultiProcessDataStore
đã bị xoá hoàn toàn. (Ieee54, I8e607)
Sửa lỗi
- Triển khai việc xoá chú thích
@ExperimentalMultiProcessDataStore
xuống phiên bản 1.1.0-alpha07. (I8e607)
Phiên bản 1.1.0-alpha06
Ngày 1 tháng 11 năm 2023
Phát hành androidx.datastore:datastore-*:1.1.0-alpha06
. Phiên bản 1.1.0-alpha06 bao gồm các thay đổi sau.
Thay đổi về API
- Phương thức nhà máy của
createSingleProcessCoordinator
hiện nhận được một đường dẫn tệp (String
,java.io.File
vàokio.Path
) để nhất quán vớicreateMultiProcessCoordinator
. (I211c8, b/305755935)
Phiên bản 1.1.0-alpha05
Ngày 6 tháng 9 năm 2023
Phát hành androidx.datastore:datastore-*:1.1.0-alpha05
. Phiên bản 1.1.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Kho dữ liệu
FileStorage
hiện đã được cung cấp công khai, vì vậy, ứng dụng có thể cung cấp các tham số tuỳ chỉnh. (Icb985) - Thay đổi hàm khởi tạo
OkioStorage
để chấp nhậnInterProcessCoordinator
sao cho có thể được sử dụng trên Android vớiMultiProcessCoordinator
. (Iecea3)
Sửa lỗi
- Khắc phục lỗi
MultiProcessCoordinator
không thể giám sát nhiều tệp trong cùng một thư mục. - Khắc phục lỗi không phát hiện được các tệp trùng lặp nếu đường dẫn tệp không được chuẩn hoá.
- Sửa các giá trị trả về không chính xác từ
RxDataStore#isDisposed
. - Sửa lỗi thiếu cấu hình Proguard cho cấu phần phần mềm
datstore-preferences-core
.
Phiên bản 1.1.0-alpha04
Ngày 5 tháng 4 năm 2023
Phát hành androidx.datastore:datastore-*:1.1.0-alpha04
. Phiên bản 1.1.0-alpha04 bao gồm các thay đổi sau.
Sửa lỗi
- Cải thiện phương thức triển khai nội bộ để tránh tình huống tương tranh trong đó luồng dữ liệu của
DataStore
có thể phát ra giá trị cũ hơn sau khi cập nhật.
Phiên bản 1.1.0-alpha03
Ngày 24 tháng 3 năm 2023
Phát hành androidx.datastore:datastore-*:1.1.0-alpha03
.
Sửa lỗi
- Xoá các điều kiện ràng buộc phần phụ thuộc khỏi các cấu phần phần mềm Maven để giải quyết vấn đề về bản dựng trong Kotlin Native Targets (b/274786186, KT-57531).
Phiên bản 1.1.0-alpha02
Ngày 22 tháng 3 năm 2023
Phát hành androidx.datastore:datastore-*:1.1.0-alpha02
. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.
Lưu ý
Lưu ý rằng phiên bản này bao gồm một hoạt động tái cấu trúc nội bộ quan trọng nhằm hợp nhất các phương thức triển khai DataStore một quy trình và nhiều quy trình. Vui lòng theo dõi những thay đổi có thể xảy ra về hành vi ngoài ý muốn (ví dụ: thời gian thông báo cập nhật). Bạn có thể sử dụng thành phần công cụ theo dõi lỗi để báo cáo những thay đổi đó.
Tính năng mới
- Giờ đây, bạn có thể sử dụng
DataStore
trong các dự án KMM. Lưu ý rằng các mục tiêu DataStore không dành cho Android vẫn đang trong quá trình thử nghiệm nhưng chúng tôi đã quyết định hợp nhất các phiên bản để giúp nhà phát triển dùng thử dễ dàng hơn. - Các tính năng nhiều quy trình được di chuyển từ
androidx.datastore.multiprocess
sangandroidx.datastore.core
. - Thêm phương thức factory mới trong
androidx.datastore.core.MultiProcessDataStoreFactory
để tạo các thực thể DataStore có đối tượngStorage
cho các thao tác đối với tệp. - Thêm giao diện
InterProcessCoordinator
mới để giúp nhiều thực thể DataStore giao tiếp qua các quy trình. Lưu ý rằng việc triển khai nhiều quá trình củaInterProcessCoordinator
chỉ có trên Android.
Thay đổi về API
- Thêm
InterProcessCoordinator
vàoStorageConnection
trong giao diện datastore-core (I555bb) - Thay đổi các API trong
MultiProcessDataStoreFactory
của datastore-core để sử dụng Bộ nhớ. (Iac02f) - Di chuyển các API công khai trong datastore-multiprocess vào datastore-core (I76d7c)
- Hiển thị
PreferencesSerializer
từ datastore-preferences-core (I4b788) - Thêm chú thích
@JvmDefaultWithCompatibility
(I8f206)
Phiên bản 1.1.0-alpha01
Ngày 9 tháng 11 năm 2022
Phát hành androidx.datastore:datastore-*: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
- Hỗ trợ các trường hợp sử dụng gồm nhiều quy trình, trong đó đảm bảo tính nhất quán của dữ liệu giữa các thực thể
DataStore
trong các quy trình. Hãy thêmMultiProcessDataStoreFactory#create
để tạo các thực thểDataStore
như vậy. - Giao diện Bộ nhớ mới cho phép chuyển đổi cơ chế lưu trữ cơ bản của
Datastore
. Chúng tôi cung cấp các phương thức triển khai cho java.io và okio. Nhà máyDataStore
có các phương thức mới chấp nhận đối tượng Bộ nhớ này.
Các thay đổi về API
- Thay đổi các API trong
MultiProcessDataStoreFactory
của datastore-core để sử dụng Bộ nhớ. (Iac02f) - Di chuyển các API công khai trong datastore-multiprocess vào datastore-core (I76d7c)
- Hiển thị
PreferencesSerializer
từ datastore-preferences-core (I4b788)
Phiên bản 1.0.0
Phiên bản 1.0.0
Ngày 4 tháng 8 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0
. Phiên bản 1.0.0 bao gồm các thay đổi sau.
Các tính năng chính của phiên bản 1.0.0
Jetpack DataStore là một giải pháp lưu trữ dữ liệu cho phép lưu trữ các cặp khoá-giá trị hoặc đối tượng đã nhập có vùng đệm giao thức. DataStore sử dụng coroutine Kotlin và Flow để lưu trữ dữ liệu một cách không đồng bộ, nhất quán và dựa trên giao dịch.
Phiên bản 1.0.0-rc02
Ngày 21 tháng 7 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-rc02
. Phiên bản 1.0.0-rc02 bao gồm các thay đổi sau.
Bản sửa lỗi
- Làm rõ rằng
SharedPreferencesMigration
không chạy nếu không có khoá. (Icfa32, b/192824325) - Sửa lỗi
SharedPreferencesMigration
được tạo bằngMIGRATE_ALL_KEYS
sẽ xảy ra ngoại lệ nếu khoá yêu cầu chưa tồn tại. (Ie318a, b/192824325)
Phiên bản 1.0.0-rc01
Ngày 30 tháng 6 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-rc01
. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.
Bản sửa lỗi
- Khắc phục lỗi tệp .gtm vô tình được thêm vào tệp jar cuối cùng (I65d96, b/188985637)
Phiên bản 1.0.0-beta02
Ngày 16 tháng 6 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-beta02
. Phiên bản 1.0.0-beta02 bao gồm các thay đổi sau.
Bản sửa lỗi
- Sửa lỗi
ClassVerificationFailure
(b/187450483)
Phiên bản 1.0.0-beta01
Ngày 21 tháng 4 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Thay đổi API
- Bỏ JvmOverloads trong các phương thức của kotlin (I2adc7)
Bản sửa lỗi
- Khắc phục lỗi khi uỷ quyền Datastore có thể dẫn đến rò rỉ ngữ cảnh (Ie96fc, b/184415662)
Phiên bản 1.0.0-alpha08
Ngày 10 tháng 3 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-alpha08
. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.
Thay đổi API
- Giờ đây, bạn có thể thêm quá trình di chuyển theo ngữ cảnh vào trường hợp uỷ quyền thuộc tính
dataStore
vàpreferencesDataStore
. (I4ef69, b/173726702) - Thêm các chức năng trợ giúp để lấy tên tệp nếu bạn không còn sử dụng Delegate của DataStore hoặc context.createDataStore (I60f9a)
- Tạm ngưng trình chuyển đổi tuần tự (Serializer) writeTo và readFrom. Nếu đã triển khai một trình chuyển đổi tuần tự, bạn cần phải cập nhật hàm thành các hàm tạm ngưng (suspend). (I1e58e)
- Thêm thuộc tính delegate cho người dùng RxDataStore. (Ied768, b/173726702)
Bản sửa lỗi
- Hạn chế sử dụng công khai API thử nghiệm (I6aa29, b/174531520)
Phiên bản 1.0.0-alpha07
Ngày 24 tháng 2 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-alpha07
. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.
Thay đổi API
Hàm mở rộng
Context.createDataStore
đã bị xoá và được thay thế bằng việc uỷ quyền thuộc tính GlobalDataStore. Gọi GlobalDataStore một lần ở cấp cao nhất trong tệp kotlin. Ví dụ:val Context.myDataStore by dataStore(...)
Đặt phần này ở cấp cao nhất của tệp kotlin để chỉ có một thực thể duy nhất của tệp. (I57215, b/173726702)
Các hàm RxDataStore hiện đã có trên một lớp RxDataStore thay vì các hàm mở rộng trên DataStore. (Idccdb, b/177691248)
Nếu muốn dịch chuyển EncryptedSharedPreferences (hoặc khởi động trực tiếp SharedPreferences) sang DataStore thì giờ bạn có thể làm việc đó bằng hàm khởi tạo (constructor) SharedPreferencesPreferences mới. Hàm khởi tạo cho phép bạn chèn SharedPreferences. (I8e04e, b/177278510)
Bản sửa lỗi
- DataStore hiện sẽ khai báo trường hợp ngoại lệ nếu có nhiều DataStore đang hoạt động trong cùng một tệp. Nếu lúc trước bạn không quản lý DataStore dưới dạng Singleton hoặc không đảm bảo rằng không có hai thực thể DataStore nào đang hoạt động đồng thời trong cùng một tệp, thì giờ đây, bạn có thể nhận biết các trường hợp ngoại lệ khi đọc hoặc ghi vào DataStore. Bạn có thể khắc phục các lỗi này bằng cách quản lý DataStore dưới dạng Singleton. (Ib43f4, b/177691248)
- Khắc phục hành vi hủy khi huỷ phạm vi phương thức gọi. (I2c7b3)
Phiên bản 1.0.0-alpha06
Ngày 13 tháng 1 năm 2021
Phát hành androidx.datastore:datastore-*:1.0.0-alpha06
. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Thêm trình bao bọc RxJava cho DataStore. Cấu phần phần mềm
datastore-rxjava2/3
chứa trình bao bọc cho API DataStore chính (RxDataStore
,RxDataStoreBuilder
, vàRxDataMigration
). Các cấu phần phần mềmdatastore-preferences-rxjava2/3
chứa một trình dựngđể tạo một DataStore Preferences.
Thay đổi API
- Ẩn giao diện CorruptionHandler. Không có lý do để công khai nội dung này vì nhà máy (factory) DataStore chỉ chấp nhận một tham số ChangeFileCorruptionHandler. (I0b3b3, b/176032264)
- Phương thức
preferencesKey<T>(name: String): Key<T>
đã bị xoá và thay thế bằng các phương thức cụ thể cho từng loại API được hỗ trợ, ví dụ:preferencesKey<Int>("int")
hiện làintPreferencesKey("int")
(Ibcfac, b/170311106)
Bản sửa lỗi
- Chỉnh sửa tài liệu trên nhà máy DataStore mà trước đó không đề cập đến việc tệp DataStore được tạo trong thư mục con “datastore/”. (Ica222)
Phiên bản 1.0.0-alpha05
Ngày 2 tháng 12 năm 2020
Phát hành androidx.datastore:datastore-*:1.0.0-alpha05
. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.
Bản sửa lỗi
- Thêm các tài liệu và trường hợp ngoại lệ tốt hơn về cách ghi đồng thời từ các DataStore. (Ia98a2, b/173522155, b/173726702)
- Hiện tại, chúng tôi cho phép (nhưng không yêu cầu) đóng OutputStream được truyền vào
Serializer.writeTo()
. (I5c9bf, b/173037611)
Phiên bản 1.0.0-alpha04
Ngày 17 tháng 11 năm 2020
Phát hành androidx.datastore:datastore-*:1.0.0-alpha04
. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.
Bản sửa lỗi
- Khắc phục vấn đề khi đóng gói gây ra sự cố sau đây trong DataStore Preference
1.0.0-alpha03
:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences
- Sự cố ban đầu được báo cáo tại đây: b/173036843
- (I4712d, b/173036843)
Phiên bản 1.0.0-alpha03
Ngày 11 tháng 11 năm 2020
Phát hành androidx.datastore:datastore-*:1.0.0-alpha03
. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
- DataStore Preference hiện hỗ trợ truyền hai giá trị (hữu ích nếu bạn cần độ chính xác cao hơn kiểu dữ liệu float) (I5be8f, b/169471808)
Thay đổi API
- Đã tạo ra một phần phụ thuộc Kotlin thuần tuý cho DataStore để biên dịch nhanh hơn.
androidx.datastore:datastore-core
chỉ chứa các API kotlin chính vàandroidx.datastore:datastore
chứa các API phụ thuộc vào Android (bao gồmSharedPreferencesMigration
và hạm khởi tạoContext.createDataStore
.)(I42d75, b/168512698) - Chia nhỏ các mục tiêu cho DataStore preference để biên dịch kotlin nhanh hơn (Ia3c19)
Serializer cần một thuộc tính mới cho giá trị mặc định mà sẽ được sử dụng nếu không có dữ liệu trên đĩa. Nhờ đó, bạn có thể dễ dàng hơn trong việc triển khai các trình chuyển đổi tuần tự tuỳ chỉnh để người dùng không phải đánh dấu các luồng đầu vào rỗng (luồng đầu vào rỗng không được phân tích cú pháp bằng json).
- Ngoài ra, hiện có một bước kiểm tra để xác nhận luồng đầu ra được gửi đến writeTo() không bị đóng và nếu bị đóng thì sẽ xảy ra ngoại lệ (I16e29)
Đưa hàm khởi tạo cho SharedPreferencesView thành hàm nội bộ. Ban đầu, hàm khởi tạo được công khai để cho phép thử nghiệm. Thay vào đó, các lần kiểm thử phải tạo SharedPreferencesPreferences và thử nghiệm dựa vào đó. (I93891)
Bản sửa lỗi
- Tham số
produceFile
trênDataStoreFactory
vàPreferenceDataStoreFactory
hiện là tham số cuối cùng trong danh sách, nhờ đó bạn có thể sử dụng cú pháp có lambda ở cuối. (Ibe7f1, b/169425442) - Tuân thủ các yêu cầu mới về API tường minh trong kotlin (I5ae1e)
Các lỗi đã biết
- DataStore Preference gặp sự cố với
java.lang.NoClassDefFoundError
. (b/173036843)
Phiên bản 1.0.0-alpha02
Ngày 14 tháng 10 năm 2020
Phát hành androidx.datastore:datastore-core:1.0.0-alpha02
và androidx.datastore:datastore-preferences:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Bản sửa lỗi
- Thêm biện pháp bảo vệ phòng trường hợp đột biến (mutation) trong datastore-core. Tình trạng đột biến làm gián đoạn việc sử dụng DataStore đối với những người sử dụng DataStore không thuộc loại proto/preference(I6aa84)
- Thêm phương thức
toString
vào Preferences.kt để dễ dàng gỡ lỗi trạng thái hiện tại (I96006) - Thêm một ngoại lệ để bảo vệ trong trường hợp sử dụng sai
DataStore.Preferences
(I1134d) - Khắc phục lỗi khiến ứng dụng ngừng hoạt động và thoát khi khởi động (I69237, b/168580258)
Phiên bản 1.0.0-alpha01
Ngày 2 tháng 9 năm 2020
Phát hành androidx.datastore:datastore-core:1.0.0-alpha01
và androidx.datastore:datastore-preferences:1.0.0-alpha01
. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
Jetpack DataStore là một giải pháp lưu trữ dữ liệu mới và cải tiến nhằm thay thế SharedPreferences. DataStore được xây dựng dựa trên Kotlin coroutine và Kotlin flow, và có hai cách triển khai khác nhau:
- DataStore Proto cho phép bạn lưu trữ object đã nhập (được hỗ trợ bởi bộ đệm giao thức)
- Preference DataStore lưu trữ các cặp khoá-giá trị
Dữ liệu được lưu trữ không đồng bộ, nhất quán và có thể chia sẻ, khắc phục hầu hết các hạn chế của SharedPreferences.