Каковы классы PreferenceManager и SharedPreference, используемые для Android?

Я столкнулся с двумя классами, которые используются в учебнике на заставках PreferenceManager и SharedPreferences. Однако я не получил много знаний о них из учебника.

Так может кто-нибудь объяснить мне, для чего оба класса используются или используются?

Предпочтения – это легкий механизм Android для хранения и извлечения пар примитивных типов данных (также называемых «Карты» и «Ассоциативные массивы»).

В каждой записи формы ключ является строкой, а значение должно быть примитивным типом данных.

КОГДА НУЖНО ИМ:

ПРЕДПОЧТЕНИЯ обычно используются для хранения информации о состоянии и общих данных между несколькими действиями приложения.

Общие настройки – это хранилище в android, которое вы можете использовать для хранения некоторых основных вещей, связанных с функциональностью, настройкой пользователей или его профилем.

Предположим, вы хотите сохранить имя пользователя в своем приложении в будущих целях. Вы не можете сохранить такую ​​маленькую вещь в базе данных, поэтому лучше сохранить ее в своих настройках. Предпочтения – это как файл, из которого вы можете получить значение в любое время в жизни приложения с помощью пары KEY-VALUE.

Возьмем другой пример: если вы используете whatsapp, у нас есть опция обоев. Как приложение знает, какое изображение служит для вас обоими обоями, когда вы открываете свой whatsapp. Эта информация сохраняется в настройках. Всякий раз, когда вы очищаете данные для любого приложения, предпочтения удаляются.

КАК ИСПОЛЬЗОВАТЬ ЭТИ ПРЕДПОЧТЕНИЯ:

final int mode = Activity.MODE_PRIVATE; final String MYPREFS = "MyPreferences_001"; // create a reference to the shared preferences object SharedPreferences mySharedPreferences; // obtain an editor to add data to my SharedPreferences object SharedPreferences.Editor myEditor; mySharedPreferences = getSharedPreferences(MYPREFS, 0); // using this instance you can get any value saved. mySharedPreferences.getInt("backColor",Color.BLACK); // default value is BLACK set here 

РЕДАКТИРОВАНИЕ ОБЩИХ ПРЕДПОЧТЕНИЙ:

 myEditor = mySharedPreferences.edit(); //edit and commit myEditor.putString("backColor", Color.RED); myEditor.commit() //very imp. 

С сайта разработчика Android:

PreferenceManager:

Используется для создания иерархии предпочтений из действий или XML.

SharedPreferences:

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

Проще говоря, PreferenceManager обычно используется, когда вы хотите создать PreferenceActivity или загружать в некоторых Предпочтениях из .xml файла в своем приложении со значениями по умолчанию и содержит его собственные ссылки на SharedPreferences .

SharedPreferences – это то, где вы обрабатываете хранение и извлечение пар ключ / значение, которые составляют ваши предпочтения. Таким образом, вы можете добавлять переменные с ключами для получения данных позже. Это отправляется в PreferenceManager который может обрабатывать добавление значений по умолчанию и настройку стандартных SharedPreferences .

Вы можете использовать SharedPreferences во всем приложении без использования PreferenceManager , но противоположное не строго верно.

Дальнейшее чтение:

  • PreferenceActivity (также PreferenceFragment ), который использует PreferenceManager в примерах.
  • Android Data Storage, в котором используются SharedPreferences (а также другие параметры).
  • Статья Vogella о Android Persistence.
  • SharedPreferences StackOverflow при правильном использовании SharedPreferences .

Как объяснил Artoo Detoo … Sharedpreferences вроде работает как сеансы в веб-разработке. Вы можете использовать их для передачи значений из одной активности в другую, и она остается такой, насколько приложение используется, если иное не изменено.

Он также используется для пользовательского значения (после входа или регистрации пользователя). Вот насколько я могу говорить об этом

API SharedPreference используются для сохранения пар ключ-значение. Они хранят их в файлах и являются частными или общедоступными на основе режима, в котором вы создаете объект SharedPreference. Они используются для хранения небольшого набора пар ключ-значение. Этот ключ здесь имеет тип String, и значение может быть любым примитивным типом.

PreferenceManager является частью API предпочтений. API предпочтений позволяет определить полный пользовательский интерфейс настроек. Этот пользовательский интерфейс настроек – это XML-макет. Вы используете PreferenceManager для управления деревом этого объекта. Он использует API SharedPreference для хранения различных настроек, которые пользователь может изменить, используя созданный вами графический макет.

Справка – «Обучение Android-документам»