android 檢測網絡是否存在

在開發過程中,尤其是在開發網絡應用的時候,時常要判斷手機的聯網狀態,及時的給用戶友善的提示。我們登錄market,在網絡斷開的時候會及時的彈出警告窗口,避免用戶盲目的等待。
這樣的判斷要貫穿在整個應用當中,在用戶切換Activity,或者是後臺service運行的時候都可能要用到。所以我們可以將判斷的邏輯封裝成一個方法,讓其他Activity/service公用。
public static boolean isNetworkAvailable( Activity mActivity ) {
Context context = mActivity.getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
/**
* 檢測網絡是否存在
*/
public static void HttpTest(final Activity mActivity)
{
if( !isNetworkAvailable( mActivity) ){
AlertDialog.Builder builders = new AlertDialog.Builder(mActivity);
builders.setTitle(“抱歉,暫時無法處理您的請求”);
LayoutInflater _inflater = LayoutInflater.from(mActivity);
View convertView = _inflater.inflate(R.layout.error,null);
builders.setView(convertView);
builders.setPositiveButton(“確定”,  new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which)
{
mActivity.finish();
}
});
builders.show();
}
}

備註:別忘記在mainfest.xml中添加  
android.permission.ACCESS_NETWORK_STATE
權限
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章