private ContentObserver mWifiObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
int value = Settings.System.getInt(
mContext.getContentResolver(), Settings.Global.WIFI_SLEEP_POLICY, Settings.Global.WIFI_SLEEP_POLICY_NEVER);
if(value != Settings.Global.WIFI_SLEEP_POLICY_NEVER){
if(mWakeLock!=null){
if(mWakeLock.isHeld())
mWakeLock.release();
mWakeLock = null;
}
}else{
WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled()){
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WifiEnableWakeLock");
mWakeLock.acquire();
}
}
}
};
mContext.getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.Global.WIFI_SLEEP_POLICY),
false, mWifiObserver);
本文详细介绍了如何在Android系统中监听Settings.Global配置的变化,包括设置观察者、处理配置更新事件,以及在应用中实现动态响应系统配置更改的策略。
1万+

被折叠的 条评论
为什么被折叠?



