我目前正在開發一個需要HTTP連接的Android應用程序。我正在使用物理設備來測試我的應用程序。如果我的設備上的無線連接未打開,我啓動應用程序,它顯然會崩潰告訴我「不幸的是,我的應用程序已停止。」 。然後有這個堆棧跟蹤告訴我與我的URL的連接被拒絕。到現在爲止還挺好。現在,我需要的是,當我的設備上沒有互聯網連接時,我的應用程序不會崩潰,而是希望它顯示一個對話框並讓應用程序繼續運行。 我也在使用Json。如果連接在Android上被拒絕,則顯示消息
這裏是我的代碼部分:
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_all_restaurants, "GET", params);
System.out.println(json.toString());
if (json==null) {
Toast.makeText(getApplicationContext(), "No internet connection", Toast.LENGTH_SHORT).show();
}
else {
// Check your log cat for JSON reponse
Log.d("All Products: ", json.toString());
}
try {
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// products found
// Getting Array of Products
Jrestaurants = json.getJSONArray(TAG_RESTAURANTS);
// looping through All Products
for (int i = 0; i < Jrestaurants.length(); i++) {
JSONObject c = Jrestaurants.getJSONObject(i);
// Storing each json item in variable
String name = c.getString("name");
String description = c.getString("description");
String address = c.getString("address");
String rating = c.getString("rating");
String open = c.getString("open");
String close = c.getString("close");
double lat = c.getDouble("latitude");
double longit = c.getDouble("longitude");
Restaurant r = new Restaurant(name, description, address, rating, open, close, lat, longit);
// Restaurant r2 = new Restaurant("Nobori Japanese Restaurant","0364 144 626","Plopilor 57-62 Street","4.2","10:00 am","11:30 pm",46.762555,23.556854);
restaurants.add(r.getName());
// restaurants.add(r2.getName());
restaurantsMap.put(r.getName(), r);
//restaurantsMap.put(r2.getName(),r2);
}
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
我想的事情是檢查是否json
爲空,但不起作用。我不確定在哪裏查看。
嗯。它不起作用。 – Codemon
嚴重會發生什麼? – MauriF
相同的舊'org.apache.http.conn.HttpHostConnectException:連接到http://192.168.2.102拒絕' – Codemon