Создание постоянных данных в Android - PullRequest
58 голосов
/ 22 июля 2010

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

Может ли это быть достигнуто без использования базы данных (sqlite).

Ответы [ 2 ]

101 голосов
/ 22 июля 2010

Многие приложения могут предоставлять способ захвата пользовательских настроек в настройках конкретного приложения или действия. Для поддержки этого Android предоставляет простой набор API.

Предпочтения обычно представляют собой пары имя-значение. Они могут быть сохранены как «Общие настройки» для различных действий в приложении (обратите внимание, что в настоящее время они не могут быть разделены между процессами). Или это может быть что-то, что должно храниться отдельно от действия.

  1. Общие настройки: общие настройки могут использоваться всеми компонентами (действиями, службами и т. Д.) Приложений.

  2. Предпочтения, обработанные действием: эти предпочтения могут использоваться только в упражнении и не могут использоваться другими компонентами приложения.

Общие настройки:

Управление общими настройками осуществляется с помощью метода getSharedPreferences класса Context. Предпочтения хранятся в файле, который может быть либо пользовательским (1), либо файлом по умолчанию (2).

(1) Вот как вы получаете экземпляр, когда хотите указать имя файла

public static final String PREF_FILE_NAME = "PrefFile";
   SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

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

(2) Рекомендуемый способ - использовать в режиме по умолчанию без указания имени файла:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

Наконец, когда у вас есть экземпляр предпочтений, вот как вы можете извлечь сохраненные значения из предпочтений:

 int storedPreference = preferences.getInt("storedInt", 0);

К сохранить значения в файле настроек SharedPreference.Editor должен использоваться объект. Editor - это вложенный интерфейс класса SharedPreference.

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

Редактор также поддерживает такие методы, как remove() и clear() для удаления значения предпочтения из файла.

Настройки деятельности:

Общие настройки могут использоваться другими компонентами приложения. Но если вам не нужно делиться настройками с другими компонентами и хотите, чтобы действия были частными. Вы можете сделать это с помощью метода действия getPreferences(). Метод getPreference использует метод getSharedPreferences() с именем класса активности для имени файла настроек.

Ниже приведен код для получения настроек:

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);

Код для хранения значений такой же, как и в случае общих настроек.

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

Вы также можете использовать другие методы, такие как сохранение состояния активности в базе данных. Примечание. Android также содержит пакет под названием android.preference. Пакет определяет классы для реализации пользовательского интерфейса настроек приложения.

Чтобы увидеть больше примеров, проверьте сообщение Android Storage на сайте разработчиков.

19 голосов
/ 22 июля 2010

Вы должны использовать общие настройки:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putString("my_pref", "my_value").commit();

И чтобы получить его:

String value = prefs.getString("my_pref", "default Value");

Эти предпочтения являются постоянными и также интегрированы с действиями по предпочтениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...