PreferenceManager getDefaultSharedPreferencesзастаріло в Android Q , як його замінити?
PreferenceManager getDefaultSharedPreferencesзастаріло в Android Q , як його замінити?
Відповіді:
Ви можете використовувати версію бібліотеки підтримки 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"
Цитата з PreferenceManager документації :
Цей клас застарів на рівні API 29.
Використовуйте бібліотеку налаштувань AndroidX для послідовної поведінки на всіх пристроях. Для отримання додаткової інформації про використання бібліотеки налаштувань AndroidX див. Налаштування .
Так, це застаріло. Використовуйте бібліотеку налаштувань AndroidX для послідовної поведінки на всіх пристроях. Для отримання додаткової інформації про використання бібліотеки налаштувань AndroidX див. Налаштування.
Слідуйте за цим -