PreferenceManager getDefaultSharedPreferencesist in Android Q veraltet . Wie ersetze ich es?
PreferenceManager getDefaultSharedPreferencesist in Android Q veraltet . Wie ersetze ich es?
Antworten:
Sie können die AndroidX-Unterstützungsbibliotheksversion von verwenden PreferenceManager, dh androidx.preference.PreferenceManagerund nicht android.preference.PreferenceManager.
Denken Sie daran, Ihrem build.gradle Folgendes hinzuzufügen.
implementation 'androidx.preference:preference:1.1.1'
implementationnicht sein dependency?
Das Paket preferenceenthält den androidx PreferenceManager :
Java: implementation "androidx.preference:preference:1.1.1"
Kotlin: implementation "androidx.preference:preference-ktx:1.1.1"
dh wechseln android.preference.PreferenceManagerzuandroidx.preference.PreferenceManager
Siehe auch PreferenceFragmentCompat , die aktuell PreferenceFragmentzu verwendende Klasse.
PreferenceFragmentCompat, der damals noch nicht vorhanden war. In der Regel tritt dann als nächstes ein Verfallsproblem auf, wenn versucht wird, die Einstellungen zu aktualisieren. Die andere verknüpfte Antwort war nur für eine begrenzte Zeit gültig.
Zitat aus der PreferenceManager Dokumentation :
Diese Klasse wurde in API-Stufe 29 nicht mehr unterstützt.
Verwenden Sie die AndroidX- Einstellungsbibliothek für ein konsistentes Verhalten auf allen Geräten. Weitere Informationen zur Verwendung der AndroidX-Voreinstellungsbibliothek finden Sie unter Einstellungen .
Wenn Sie nur Schlüssel-Wert-Paare speichern und abrufen, können Sie Folgendes ersetzen:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
mit:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
Stellen Sie sicher, dass Sie den richtigen Dateinamen für die neue Implementierung verwenden, da Ihre Benutzer sonst den Zugriff auf alle mit getDefaultSharedPreferences (!) Gespeicherten Daten verlieren. Im Folgenden wird der Dateiname abgerufen, den getDefaultSharedPreferences verwendet:
getPackageName() + "_preferences"
Ja, es ist veraltet. Verwenden Sie die AndroidX-Einstellungsbibliothek für ein konsistentes Verhalten auf allen Geräten. Weitere Informationen zur Verwendung der AndroidX-Einstellungsbibliothek finden Sie unter Einstellungen.
Folge dies -