PreferenceManager getDefaultSharedPreferences
không dùng nữa trong Android Q , làm cách nào để thay thế nó?
Câu trả lời:
Bạn có thể sử dụng phiên bản thư viện hỗ trợ AndroidX của PreferenceManager
, tức là androidx.preference.PreferenceManager
và không android.preference.PreferenceManager
.
nhớ thêm phần sau vào build.gradle của bạn.
implementation 'androidx.preference:preference:1.1.1'
implementation
không dependency
?
Gói preference
cung cấp androidx
PreferenceManager :
Java: implementation "androidx.preference:preference:1.1.1"
Kotlin: implementation "androidx.preference:preference-ktx:1.1.1"
tức là thay đổi android.preference.PreferenceManager
thànhandroidx.preference.PreferenceManager
Cũng xem PreferenceFragmentCompat , là PreferenceFragment
lớp hiện tại để sử dụng.
PreferenceFragmentCompat
, mà trước đó không tồn tại ... thường thì tiếp theo sẽ là một vấn đề không dùng nữa mà người ta có thể gặp phải, khi cố gắng cập nhật tùy chọn. Câu trả lời được liên kết khác chỉ có giá trị trong một khoảng thời gian giới hạn.
Nếu bạn chỉ lưu và truy xuất các cặp khóa-giá trị, bạn có thể thay thế:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
với:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
Đảm bảo sử dụng đúng tên tệp cho triển khai mới, nếu không người dùng của bạn sẽ mất quyền truy cập vào mọi thứ được lưu bằng getDefaultSharedPreferences (!). Sau đây sẽ lấy tên tệp mà getDefaultSharedPreferences sử dụng:
getPackageName() + "_preferences"
Trích dẫn từ PreferenceManager
tài liệu :
Lớp này không được chấp nhận ở cấp API 29.
Sử dụng Thư viện tùy chọn AndroidX để có hành vi nhất quán trên tất cả các thiết bị. Để biết thêm thông tin về cách sử dụng Thư viện tùy chọn AndroidX, hãy xem Cài đặt .
Có, nó không được dùng nữa. Sử dụng Thư viện tùy chọn AndroidX để có hành vi nhất quán trên tất cả các thiết bị. Để biết thêm thông tin về cách sử dụng Thư viện tùy chọn AndroidX, hãy xem Cài đặt.
Làm theo điều này -