我已经onSharedPreferenceChanged
在我的主要活动中实施了。
如果我更改主要活动中的首选项,我的事件就会触发。
如果我通过我的首选项屏幕PreferenceActivity
(
有没有人建议我应该如何克服这种情况?
谢谢!
EDIT1:我尝试在我的偏好活动中添加事件处理程序,但它永远不会触发。在我的偏好活动的 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
}
});
}