Android AsyncTask'te Hata Kontrolü ?
Arkadaşlar merhaba, androidte asynctask kullanarak sunucuma veri gönderiyorum
Fakat şöyle bir problemim var, bir şekilde işlem sırasında internetin gittiğini veya teknik bir problemin olduğunda uygulamanın kapanmaması için nasıl bir hata kontrolü yapmalıyım ? Gerekli try catchler var ama yinede uygulamayı atıyorum internet bağlantısı olmadan açtığımda direk uygulamayı kapatıyor, ben uygulamayı kapatmadan yine devam etmesini istiyorum
Async Class'ım
[code]
public class MyServiceAsync extends AsyncTask<String, String, Boolean> {
private String json;
private JSONObject jObj;
@Override
protected Boolean doInBackground(String... params) {
Boolean result = false;
try {
JSONArray jsonArrays = GetJson(params[0]).getJSONArray("GetPost");
if (jsonArrays.length() > 0) result = true;
} catch (JSONException e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(Boolean result) {
}
private JSONObject GetJson(String URL) throws JSONException {
// Making HTTP request
try {
URL url = new URL(URL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestProperty("Content-Type", "0");
httpURLConnection.setRequestMethod("GET");
//httpURLConnection.setRequestProperty("Connection", "close");
httpURLConnection.setUseCaches(false);
httpURLConnection.setConnectTimeout(60000);
httpURLConnection.setReadTimeout(60000);
httpURLConnection.setAllowUserInteraction(false);
httpURLConnection.setInstanceFollowRedirects(true);
httpURLConnection.connect();
int status = httpURLConnection.getResponseCode();
switch (status) {
case 200:
case 201:
BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
json = sb.toString();
jObj = new JSONObject(json);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jObj;
}
}
[/code]