Настройки Android — в чем разница?

В чем разница, когда я получаю предпочтения как:

PreferenceManager.getDefaultSharedPreferences(getBaseContext());

и

getPreferences(Context.MODE_PRIVATE);

person LA_    schedule 13.04.2011    source источник


Ответы (1)


PreferenceManager.getDefaultSharedPreferences(getBaseContext());

Предоставляет доступ к файлу настроек, который является глобальным для всего пакета приложения; любое действие может получить доступ к настройкам (внутренне файл xml, содержащий настройки, будет называться your.application.package_preferences.xml).

contextInstance.getPreferences(Context.MODE_PRIVATE);

Предоставляет настройки только для класса contextInstance: только экземпляры класса контекста могут получить доступ к этим настройкам (говорится, что ваш пакет все еще your.application.package, а вы находитесь в your.application.package.foo.MyActivity, внутренний файл настроек foo.MyActivity.xml).

person OcuS    schedule 13.04.2011
comment
Ну ты объяснил лучше меня. Пальцы вверх! - person Wroclai; 13.04.2011
comment
Спасибо, ОкуС. Не могли бы вы также уточнить, если я использую .getDefaultSharedPreferences(getBaseContext()), смогут ли другие приложения редактировать это значение? - person LA_; 13.04.2011
comment
Нет, потому что getDefaultSharedPreferences(Context context) даст вам предпочтения в Context.MODE_PRIVATE (согласно android.git.kernel.org/?p=platform/frameworks/ ). Может быть, вы могли бы попробовать что-то вроде того, что объяснено в последнем сообщении этой темы groups .google.com/group/android-developers/browse_thread/thread/ . Сам не пробовал, надеюсь поможет. - person OcuS; 14.04.2011