在我使用Volley之前,和往常一樣,我使用AsyncTask來檢查我的互聯網狀態。Android Volley - 檢查互聯網狀態
這是我在做的AsyncTask:
private class NetCheck extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... args) {
// get Internet status
return cd.isConnectingToInternet();
}
protected void onPostExecute(Boolean th) {
if (th == true) {
new LoadCategories().execute();
} else {
Toast.makeText(CategoryActivity.this, "Unable to connect to server",
Toast.LENGTH_LONG).show();
}
}
}
這是isConnectingToInternet
功能:
public boolean isConnectingToInternet() {
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected())
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url
.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
如何實現這一目標用排球?
絕對適合我。 – shaiToro
這是不一樣的。 不僅在沒有網絡連接時,而且在無法建立與主機的連接時(例如,如果它無法解析主機),拋出NoConnectionError。 – user2137020
由於'NoConnectionError'擴展了'NetworkError',所以你永遠不會碰到'if(volleyError instanceof NoConnectionError){' – Jon