PreferenceManager getDefaultSharedPreferences
已在Android Q中弃用,该如何替换?
PreferenceManager getDefaultSharedPreferences
已在Android Q中弃用,该如何替换?
Answers:
您可以使用AndroidX支持库版本PreferenceManager
,即androidx.preference.PreferenceManager
和不android.preference.PreferenceManager
。
请记住将以下内容添加到build.gradle中。
implementation 'androidx.preference:preference:1.1.1'
implementation
不是dependency
吗?
软件包preference
提供了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
要使用的当前类。
PreferenceFragmentCompat
,该链接当时还不存在...通常是在尝试更新首选项时可能遇到的下一个弃用问题。另一个链接的答案仅在有限的时间内有效。
如果您只是保存和检索键值对,则可以替换:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
与:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
确保为新的实现使用正确的文件名,否则您的用户将失去对使用getDefaultSharedPreferences(!)保存的所有内容的访问权限。以下将获取文件名getDefaultSharedPreferences所使用:
getPackageName() + "_preferences"