Должен ли я использовать несколько файлов настроек или только один? - PullRequest
4 голосов
/ 05 декабря 2011

Я хочу поделиться данными конфигурации пользователя из трех отдельных действий. В чем преимущество / недостаток одной методологии над другой (с использованием одного или трех файлов Prefs)?

Что я думаю, если я использую один, я объявлю тот же const в основной деятельности, а-ля:

public static final String PREFS_NAME = "Pterodactyl"; //Activity 1

и используйте getPreferences ();

-OR:

Я буду объявлять разные const в каждом действии, а ля:

public static final String PREFS_NAME = "Pterodactyl";  //Activity 1
public static final String PREFS_NAME = "duckbilledPlatypus";  //Activity 2
public static final String PREFS_NAME = "yellowbelliedSapsucker";  //Activity 3

и используйте getSharedPreferences ();

Это «6 из полутора десятков других» или один из них «предпочтительнее» другого, и почему?

Ответы [ 2 ]

4 голосов
/ 05 декабря 2011

Любое предпочтение, которое является глобальным и относится ко всем действиям, будет в глобальном файле. Теперь, сколько файлов вы должны создать, зависит в основном от вашего вкуса. Поскольку файлы свойств просто содержат пару имя / значение и не имеют группировки, не имеет значения, находятся они в одном файле или нет.

Я рекомендую один глобальный файл для настроек, это делает вашу жизнь очень легкой. Используйте ниже API:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

В этом нет имени файла. Таким образом, вы можете жить без каких-либо имен файлов настроек в вашем коде.

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

Для справки:

http://developer.android.com/guide/topics/data/data-storage.html#pref

1 голос
/ 05 декабря 2011

Я не вижу причин использовать несколько файлов настроек;Я использую только один для всех моих действий в моих приложениях.

...