设置里面的很多信息都是保存在数据库中的,当我们改变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);////取消注册
}
时间: 2024-11-06 03:35:24