PreferenceManager getDefaultSharedPreferences
jest przestarzały w systemie Android Q , jak go zastąpić?
PreferenceManager getDefaultSharedPreferences
jest przestarzały w systemie Android Q , jak go zastąpić?
Odpowiedzi:
Możesz użyć wersji biblioteki obsługującej AndroidX PreferenceManager
, tj. androidx.preference.PreferenceManager
I nie android.preference.PreferenceManager
.
pamiętaj, aby dodać następujące elementy do pliku build.gradle.
implementation 'androidx.preference:preference:1.1.1'
implementation
nie jest dependency
?
Pakiet preference
zawiera androidx
PreferenceManager :
Jawa: implementation "androidx.preference:preference:1.1.1"
Kotlin: implementation "androidx.preference:preference-ktx:1.1.1"
tj. zmień android.preference.PreferenceManager
naandroidx.preference.PreferenceManager
Zobacz także PreferenceFragmentCompat , która jest bieżącą PreferenceFragment
klasą do użycia.
PreferenceFragmentCompat
, który wtedy nie istniał ... jest to zwykle następny problem z wycofywaniem, z którym można się spotkać, próbując zaktualizować preferencje. Druga połączona odpowiedź była ważna tylko przez ograniczony czas.
Jeśli tylko zapisujesz i pobierasz pary klucz-wartość, możesz zamienić:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
z:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
Upewnij się, że używasz prawidłowej nazwy pliku dla nowej implementacji, w przeciwnym razie użytkownicy utracą dostęp do wszystkiego, co zapisano za pomocą getDefaultSharedPreferences (!). Poniższy kod otrzyma nazwę pliku używaną przez getDefaultSharedPreferences:
getPackageName() + "_preferences"
Cytat z PreferenceManager
dokumentacji :
Ta klasa została wycofana na poziomie interfejsu API 29.
Użyj biblioteki preferencji AndroidX, aby zapewnić spójne zachowanie na wszystkich urządzeniach. Aby uzyskać więcej informacji na temat korzystania z biblioteki preferencji AndroidX, zobacz Ustawienia .
Tak, jest przestarzały. Użyj biblioteki preferencji AndroidX, aby zapewnić spójne działanie na wszystkich urządzeniach. Aby uzyskać więcej informacji na temat korzystania z biblioteki preferencji AndroidX, zobacz Ustawienia.
Obserwuj to -
kotlin libray
implementation 'androidx.preference:preference-ktx:1.1.1'
kotlin użyj Configuration.getInstance (). load (this, androidx.preference.PreferenceManager.getDefaultSharedPreferences (this))