Я реализовал onSharedPreferenceChanged
в своем основном действии.
Если я изменяю предпочтения в основном действии, срабатывает мое событие.
Если я изменяю настройки на экране настроек ( PreferenceActivity
), мое событие НЕ запускается при изменении настроек (потому что это отдельное действие и отдельная ссылка на sharedPreferences?)
Есть ли у кого-нибудь рекомендация, как мне действовать в этой ситуации?
Спасибо!
РЕДАКТИРОВАТЬ1: Я попытался добавить обработчик событий прямо в свое действие предпочтений, но он не сработал. Следующий метод вызывается во время onCreate моей активности предпочтений. Когда я меняю значения, он никогда не печатает сообщение ( msg ()
- это оболочка для Log.d
).
private void registerChangeListener () {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener () {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
msg (" ***** Shared Preference Update ***** ");
Intent i = new Intent();
i.putExtra("KEY", key);
i.setAction("com.gtosoft.dash.settingschanged");
sendBroadcast(i);
// TODO: fire off the event
}
});
}