Android Q 中弃用了 PreferenceManager getDefaultSharedPreferences
PreferenceManager getDefaultSharedPreferences deprecated in Android Q
PreferenceManager getDefaultSharedPreferences
在 Android 10 中已弃用。我该如何更换它?
引自PreferenceManager
documentation:
This class was deprecated in API level 29.
Use the AndroidX Preference Library for consistent behavior across all devices. For more information on using the AndroidX Preference Library see Settings.
是的,它已被弃用。使用 AndroidX 首选项库在所有设备上实现一致的行为。有关使用 AndroidX 首选项库的更多信息,请参阅设置。
关注这个-
您可以使用 PreferenceManager
的 Android 10 支持库版本,即 androidx.preference.PreferenceManager
而不是 android.preference.PreferenceManager
。
记得将以下内容添加到您的 build.gradle:
implementation 'androidx.preference:preference:1.1.1'
包裹preference
provides the androidx
PreferenceManager:
Java: implementation "androidx.preference:preference:1.1.1"
科特林:implementation "androidx.preference:preference-ktx:1.1.1"
即
将 android.preference.PreferenceManager
更改为 androidx.preference.PreferenceManager
另请参阅 PreferenceFragmentCompat,这是当前要使用的 PreferenceFragment
class。
如果您只是保存和检索键值对,您可以替换:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
与:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
确保为新的实现使用正确的文件名,否则您的用户将无法访问使用 getDefaultSharedPreferences(!) 保存的所有内容。下面将获取文件名getDefaultSharedPreferences使用:
getPackageName() + "_preferences"
Kotlin 库
implementation 'androidx.preference:preference-ktx:1.1.1'
Kotlin 使用
Configuration.getInstance().load(this, androidx.preference.PreferenceManager.getDefaultSharedPreferences(this))
您可以在应用级别导入此库gradle
implementation "androidx.preference:preference-ktx:1.1.1"
然后从 class 中创建“PreferenceManager”的地方删除导入的文件
按 Alt+Enter 并导入 androidx 希望您获得最新版本的首选项管理器。
implementation "androidx.preference:preference-ktx:1.1.1"
class 文件 PrivateSharedPreferences;
class PrivateSharedPreferences(context: Context) {
private val file = "com.example.com_shared"
private val key = "private_key"
private var sharedPreferences = context.getSharedPreferences(file, Context.MODE_PRIVATE)
private val editor = sharedPreferences.edit()
fun save(ok: Boolean) {
editor.putBoolean(key, ok)
editor.apply()
}
fun read() : Boolean {
return sharedPreferences.getBoolean(key, false)
}
}
从片段或适配器读取;
PrivateSharedPreferences(context).read()
保存
PrivateSharedPreferences(context).save(true)
使用Jetpack DataStore,它是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。 DataStore 使用 Kotlin 协程和 Flow 异步、一致地存储数据,
和交易。
If you're currently using SharedPreferences to store data, consider
migrating to DataStore instead.
设置
dependencies {
implementation "androidx.datastore:datastore:1.0.0"
}
它还支持 RxJava2 和 RxJava3。
PreferenceManager getDefaultSharedPreferences
在 Android 10 中已弃用。我该如何更换它?
引自PreferenceManager
documentation:
This class was deprecated in API level 29.
Use the AndroidX Preference Library for consistent behavior across all devices. For more information on using the AndroidX Preference Library see Settings.
是的,它已被弃用。使用 AndroidX 首选项库在所有设备上实现一致的行为。有关使用 AndroidX 首选项库的更多信息,请参阅设置。
关注这个-
您可以使用 PreferenceManager
的 Android 10 支持库版本,即 androidx.preference.PreferenceManager
而不是 android.preference.PreferenceManager
。
记得将以下内容添加到您的 build.gradle:
implementation 'androidx.preference:preference:1.1.1'
包裹preference
provides the androidx
PreferenceManager:
Java: implementation "androidx.preference:preference:1.1.1"
科特林:implementation "androidx.preference:preference-ktx:1.1.1"
即
将 android.preference.PreferenceManager
更改为 androidx.preference.PreferenceManager
另请参阅 PreferenceFragmentCompat,这是当前要使用的 PreferenceFragment
class。
如果您只是保存和检索键值对,您可以替换:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
与:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
确保为新的实现使用正确的文件名,否则您的用户将无法访问使用 getDefaultSharedPreferences(!) 保存的所有内容。下面将获取文件名getDefaultSharedPreferences使用:
getPackageName() + "_preferences"
Kotlin 库
implementation 'androidx.preference:preference-ktx:1.1.1'
Kotlin 使用
Configuration.getInstance().load(this, androidx.preference.PreferenceManager.getDefaultSharedPreferences(this))
您可以在应用级别导入此库gradle
implementation "androidx.preference:preference-ktx:1.1.1"
然后从 class 中创建“PreferenceManager”的地方删除导入的文件 按 Alt+Enter 并导入 androidx 希望您获得最新版本的首选项管理器。
implementation "androidx.preference:preference-ktx:1.1.1"
class 文件 PrivateSharedPreferences;
class PrivateSharedPreferences(context: Context) {
private val file = "com.example.com_shared"
private val key = "private_key"
private var sharedPreferences = context.getSharedPreferences(file, Context.MODE_PRIVATE)
private val editor = sharedPreferences.edit()
fun save(ok: Boolean) {
editor.putBoolean(key, ok)
editor.apply()
}
fun read() : Boolean {
return sharedPreferences.getBoolean(key, false)
}
}
从片段或适配器读取;
PrivateSharedPreferences(context).read()
保存
PrivateSharedPreferences(context).save(true)
使用Jetpack DataStore,它是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。 DataStore 使用 Kotlin 协程和 Flow 异步、一致地存储数据, 和交易。
If you're currently using SharedPreferences to store data, consider migrating to DataStore instead.
设置
dependencies {
implementation "androidx.datastore:datastore:1.0.0"
}
它还支持 RxJava2 和 RxJava3。