Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Как во фрагменте проверить изменилось ли значение SharedPreferences

#java #android #android_shared_preferences


Хочу, чтобы фрагмент, например, каждые 2 секунды сверял значение из SharedPreferences
и выполнял определенное действие или как можно по другому реализовать ?
    


Ответы

Ответ 1



Чтобы контролировать изменения в SharedPreferences на него можно повесить слушатель. Слушатель будет срабатывать каждый раз, когда в экземпляр настроек, к которым он подключен будут вносится любые изменения: public class SomeFragment extends Fragment implements SharedPreferences.OnSharedPreferenceChangeListener { SharedPreferences prefs; .... prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); prefs.registerOnSharedPreferenceChangeListener(this); @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals("some_key")) { // действия при изменении значения в ключе some_key } } } где some_key - определенный ключ в настройках (ячейка для сохранения значений) sharedPreferences - экземпляр настроек. Из него можно получить конкретное измененное значение. параметр переданный колбэком String key это тот ключ, в котором произошли изменения. Официальная документация по вопросу и рекомендации по использованию.

Ответ 2



Может вам поможет OnSharedPreferenceChangeListener?

Комментариев нет:

Отправить комментарий