关于WifiLock
1. 用于wifi长时间下载大数据的场合,一般情况下wifi设备会在灭屏后15分钟时进行唤醒系统并STOP wifi设备。如果不想让wifi在灭屏之后一段时间关闭,可加此锁。
2. 在加锁期间,即在release之前,相当于在wifi高级设置中进行了“屏幕关闭时永不睡眠”的选项。
3. 副作用:
3.1 会增加耗电;
3.2 wifi连接保持时间过长的话,比如两天,此时虽然wifi 信号强度仍然是连接状态,但可能已经无法联网,此时需要重新关闭和打开一次wifi才恢复。可能和Wifi路由设置的IP租约期限到期有关, 此时STA会提前renew 租约。
4. 使用方法,参考google开发者文档: http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html
5. 该API的实现:
WifiManager.java(WifiLock.acquire)==AIDL==>IWifiManager.aidl==BIND ==> WifiService.java(acquireWifiLock) ==>参考下图的圈起的部分。
1. 用于wifi长时间下载大数据的场合,一般情况下wifi设备会在灭屏后15分钟时进行唤醒系统并STOP wifi设备。如果不想让wifi在灭屏之后一段时间关闭,可加此锁。
2. 在加锁期间,即在release之前,相当于在wifi高级设置中进行了“屏幕关闭时永不睡眠”的选项。
3. 副作用:
3.1 会增加耗电;
3.2 wifi连接保持时间过长的话,比如两天,此时虽然wifi 信号强度仍然是连接状态,但可能已经无法联网,此时需要重新关闭和打开一次wifi才恢复。可能和Wifi路由设置的IP租约期限到期有关, 此时STA会提前renew 租约。
4. 使用方法,参考google开发者文档: http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html
5. 该API的实现:
WifiManager.java(WifiLock.acquire)==AIDL==>IWifiManager.aidl==BIND ==> WifiService.java(acquireWifiLock) ==>参考下图的圈起的部分。
![](https://img-my.csdn.net/uploads/201209/03/1346666237_1937.jpg)