设置里面的很多信息都是保存在数据库中的,当我们改变gps等设置时,会改变数据库里面的值,
我们可以用内容观察者对其进行监听,然后做出相应处理,这里贴出关键代码
- private final ContentObserver mGpsMonitor = new ContentObserver(null) {
- @Override
- public void onChange(boolean change) {
- super.onChange(change);
- boolean enabled = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
- Message msg = handler.obtainMessage();
- msg.what = 0x123;
- msg.obj = enabled;
- handler.sendMessage(msg);
- }
- };
- protected void onStart() {
- ///注册观察者监听数据库状态改变
- getContentResolver().registerContentObserver(
- Settings.Secure.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
- false, mGpsMonitor);
- super.onStart();
- };
- @Override
- protected void onStop() {
- super.onStop();
- getContentResolver().unregisterContentObserver(mGpsMonitor);////取消注册
- }
来源: http://www.phpxs.com/code/1002119/