wifi锁用于下载大文件。当程序退到后台或锁屏时不会断掉网络。
public void acquireWifiLock() {
try {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (wifiManager != null && wifiManager.isWifiEnabled()) {//可用状态
if (mWifiLock == null) {//没锁
mWifiLock = wifiManager.createWifiLock("WifiService");
mWifiLock.setReferenceCounted(true);//iOS中的引用计数
}
if (!mWifiLock.isHeld())//没有被用
mWifiLock.acquire();//请求
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 释放wifi锁
*/
public void releaseWifiLock() {
try {
if (mWifiLock != null && mWifiLock.isHeld())
mWifiLock.release();//释放
} catch (Exception e) {
e.printStackTrace();
}
}
一切的方法有引用就要有释放,有添加就要有移除,轻则会有内存泄漏,重则crash。