Перезагрузить SharedPreferences при возобновлении работы? (или как обновить/перезагрузить активность)

Как перезагрузить SharedPreferences при переходе от одного действия к другому? Если я возобновлю работу, возможно, пользователь изменил настройки. Можно ли перезагрузить SharedPreferences или мне нужно обновить/перезагрузить активность. А если, то как?


person Badr Hari    schedule 19.03.2011    source источник


Ответы (1)


Нет никакой разницы в том, как вы получаете и устанавливаете SharedPreferences в обычном режиме, и в onResume. Что вам нужно будет сделать в дополнение к получению самых последних настроек, так это обновить любые объекты, которые у вас есть в Activity, которые используют значения настроек. Это гарантирует, что ваш Activity работает с самыми последними значениями.

Простой пример:

protected void onResume() {
    super.onResume();
        getPrefs();

    //...Now update your objects with preference values         
}

private void getPrefs() {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    String myPref = prefs.getString("myPref", "");
}
person user432209    schedule 19.03.2011
comment
Спасибо. Вы ответили, что решили мою проблему. Я случайно вызвал getDefaultSharedPreferences onCreate, а не onStart. Спасибо. - person Badr Hari; 19.03.2011
comment
В вашем примере предполагается, что getPrefs() что-то возвращает? - person Joshua Pinter; 09.12.2013
comment
super.onResume() ДОЛЖЕН вызываться в последней строке метода onResume(). cs.dartmouth.edu/~campbell/cs65/lecture05/lecture05.html< /а> - person Yousha Aleayoub; 26.03.2016