主要写给自己看,以后直接使用。直接上代码:
通过监听网络状态改变更新一次Notification状态。然后发现关闭时很及时,但是打开时硬件没启动,代码就执行了,结果打开时状态仍不及时,决定延迟发送消息,执行代码,延迟两秒时还是没作用,延迟四秒时终于可以解决了。
//监测Wifi网络状态的广播接收器
private WifiStateReceiver mWifiStateReceiver;
/**
* 注册Wifi监听广播接收器
* @author Liusy
*/
private void initWifiState() {
mWifiStateReceiver = new WifiStateReceiver();
//注册广播接收器,只监听Wifi网络状态的改变
registerReceiver(mWifiStateReceiver,
new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
}
/**
* 监控Wifi状态的广播接收器
* @author Liusy
* 2012-6-29
*/
private final class WifiStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context c, Intent intent) {
Bundle bundle = intent.getExtras();
int statusInt = bundle.getInt("wifi_state");
switch (statusInt) {
case WifiManager.WIFI_STATE_UNKNOWN:
break;
case WifiManager.WIFI_STATE_ENABLING:
Log.i(TAG, "网络打开,系统将处于在线状态!");
break;
case WifiManager.WIFI_STATE_ENABLED:
mHandler.sendEmptyMessageDelayed(0, 4 * 1000);
break;
case WifiManager.WIFI_STATE_DISABLING:
Log.i(TAG, "网络关闭,系统将处于离线状态!");
askForWebService();
break;
case WifiManager.WIFI_STATE_DISABLED:
Log.i(TAG, "网络关闭");
break;
default:
break;
}
}
}