Хочу, чтобы фрагмент, например, каждые 2 секунды сверял значение из SharedPreferences и выполнял определенное действие или как можно по другому реализовать ?
Ответ
Чтобы контролировать изменения в 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 это тот ключ, в котором произошли изменения.
Официальная документация по вопросу и рекомендации по использованию.
Комментариев нет:
Отправить комментарий