在Android应用和framework层面添加监听器去监听SettingsProvider的数据变化。
监听类:SettingsObserver class SettingsObserver extends ContentObserver { SettingsObserver(Handler handler) { super(handler); }
void observe() { // Observe all users' changes ContentResolver resolver = mContext.getContentResolver(); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.END_BUTTON_BEHAVIOR), false, this, UserHandle.USER_ALL); resolver.registerContentObserver(Settings.Secure.getUriFor( Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR), false, this, UserHandle.USER_ALL);
updateSettings(); }
@Override public void onChange(boolean selfChange) { updateSettings(); } }
创建监听对象,调用observe()开始监听:
mSettingsObserver = new SettingsObserver(mHandler); mSettingsObserver.observe();
停止监听:
ContentResolver resolver = mContext.getContentResolver(); resolver.unregisterContentObserver(mSettingsObserver);