SharedPreferences против частного файла - PullRequest
3 голосов
/ 22 марта 2012

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

Когда лучше использовать приватный файл, сгенерированный Context.openFileOutput(), а когда лучше использовать SharedPreferences?

EDIT
Мои данные существуют исключительно в примитивах.

1 Ответ

1 голос
/ 22 марта 2012

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

Однако в Android есть метод getSharedPreferences(String name, int mode) в Context .Вы можете использовать это, чтобы иметь несколько файлов предпочтений, в вашем случае - сохранять файлы, используя уникальные имена, передаваемые в параметр name.

Что касается волатильности, вы можете принудительно сохранить предпочтения, получив Editor через edit() с последующим вызовом commit().

Обязательно обратите внимание, что SharedPreferences действительно будет использоваться совместно на основе name:

Извлечение и удержание содержимогофайла настроек 'name', возвращая SharedPreferences, через который вы можете получить и изменить его значения.Только один экземпляр объекта SharedPreferences возвращается любым абонентам с тем же именем, что означает, что они увидят изменения друг друга, как только они будут сделаны.

...