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"