В чем разница между Preferences и SharedPreferences в Android?

В чем разница между java.util.prefs.Preferences и android.content.SharedPreferences? Похоже, что они для схожих вещей - вы можете поставить и получить значение по ключу в обоих из них, но Preferences выглядит как что-то более сложное и относится больше к ОС, чем к приложению.


person andstepko    schedule 03.01.2017    source источник
comment
проверьте эти ссылки, stackoverflow.com/questions/23222931/ ,   -  person AmeeJoshi    schedule 03.01.2017
comment
@Amee Joshi Этот вопрос касается android.preference, но я спрашиваю о java.util.prefs.Preferences, который не связан с пользовательским интерфейсом.   -  person andstepko    schedule 03.01.2017
comment
Вероятно, вам не следует использовать java.util.prefs.Preferences в приложении для Android, придерживайтесь SharedPreferences.   -  person Egor    schedule 03.01.2017


Ответы (2)


Настройки — это основной класс Java link1.

java.util.prefs.Preferences: этот класс позволяет приложениям хранить и извлекать данные о пользовательских и системных настройках и настройках. Эти данные постоянно хранятся в резервном хранилище, зависящем от реализации.

SharedPreferences — это специальный интерфейс для Android link2.

android.content.SharedPreferences: интерфейс для доступа и изменения данных о предпочтениях, возвращаемых функцией getSharedPreferences(String, int). Для любого конкретного набора предпочтений существует единственный экземпляр этого класса, который используется всеми клиентами.

person msdev16    schedule 03.01.2017

Настройки: часть настроек пользовательского интерфейса. Он содержит различные классы, которые позволяют создавать экраны настроек из кода или XML.

Общие настройки. Они используются для хранения значений в XML-файлах. Эти файлы создаются, поддерживаются и удаляются Android для вас. Они не зашифрованы и могут быть легко изменены, когда пользователь рутирует свой телефон. Не используйте их для конфиденциальной информации. Упомянутые выше настройки используют общие настройки в качестве базовой системы.

Чтобы получить доступ ко всем настройкам, мы используем SharedPreferences как

SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();

тогда как для обработки определенного предпочтения мы используем

Preference p = getPreferenceScreen().getPreference(index);

person Raj Shah    schedule 13.08.2019