Android網絡應用程序開發中,經常要判斷網絡連接是否可用,因此經常有必要監聽網絡狀態的變化。android的網絡狀態監聽可以用BroadcastReceiver來接收網絡狀態改變的廣播,具體實現如下:
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "網絡狀態改變");
boolean success = false;
//獲得網絡連接服務
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
// State state = connManager.getActiveNetworkInfo().getState();
State state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).getState(); // 獲取網絡連接狀態
if (State.CONNECTED == state) { // 判斷是否正在使用WIFI網絡
success = true;
}
state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_MOBILE).getState(); // 獲取網絡連接狀態
if (State.CONNECTED != state) { // 判斷是否正在使用GPRS網絡
success = true;
}
if (!success) {
Toast.makeText(LocationMapActivity.this, "您的網絡連接已中斷", Toast.LENGTH_LONG).show();
}
}
在Activity的onCreate中:
//註冊網絡監聽
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mNetworkStateReceiver, filter);
//在Activity中的onDestroy中:'
unregisterReceiver(mNetworkStateReceiver); //取消監聽
作者 crane