Я запускаю задачу async в android для ping t конкретного URL-адреса, но проблема в том, что URL-адрес недействителен или недоступен. Исключение возникает как событие sockettimeoutexception, поэтому в этом исключении я хочу остановить запущенную задачу. iagve попытался использовать метод Cancel(), но это приводит к сбою приложения.как остановить выполнение задачи async?
Я использую следующий код.
private class UrlDataProvider3 extends AsyncTask<String, Void, String>
{
String ret="";
int checkStatus;
Boolean exception=false;
@Override
protected String doInBackground(String... url)
{
HttpURLConnection con = null;
try
{
Log.i("RAE", "urlData"+url[0]);
HttpURLConnection.setFollowRedirects(true);
con = (HttpURLConnection) new URL(url[0]).openConnection();
con.setRequestMethod("POST");
con.setConnectTimeout(20000);
}
catch (IOException e)
{
if(e.toString().contains("java.net.SocketTimeoutException:"))
{
return null;
}
}
return ret;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
Log.i("RAE"," Asyc finished");
}
Приложение терпит крах и показывает задачу Исключение исключения –
вставьте трассировку стека здесь. – Nazgul
12-06 10: 42: 06.192: E/AndroidRuntime (31001): FATAL EXCEPTION: main 12-06 10: 42: 06.192: E/AndroidRuntime (31001): java.util.concurrent.CancellationException –