onSharedPreferenceChanged не запускается, если изменение происходит в отдельном действии?

Я реализовал 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
        }
    });
}
68
задан Brad Hein 26 September 2010 в 18:10
поделиться