Quiero usar una AsyncTask para verificar una InetAddress, como en el siguiente código. La variable tempInet es una variable global que indica si el sitio web era contactable o no.Cómo cancelar una Android AsyncTask después de un cierto período de tiempo? (Por ejemplo, 10 segundos)
Comienzo la AsyncTask con el código ... new InetAsyncTask(). Execute ("www.facebook.com");
Mi problema es que quiero que la AsyncTask se cancele después de (digamos) 10 segundos.
Algunas otras preguntas sugieren usar el método get (10, TimeUnit.SECONDS). Me gustaría hacer esto pero no estoy seguro de dónde/cómo poner el método get. Con ejecutar? En el método doInBackground?
Además, ¿el método get() bloquea el hilo principal? Si lo hace, ¿de qué sirve?
Cualquier ayuda apreciada.
class InetAsyncTask extends AsyncTask<String, String, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
try {
InetAddress.getByName("www.facebook.com");
return true;
} catch (UnknownHostException e) {
return false;
}
} //end doInBackground function
protected void onPostExecute(Boolean... result) {
tempInet = result[0];
}
} //end class
preguntas relacionadas
Android - Setting a Timeout for an AsyncTask?
stop async task after 60 second
Desarrolladores de Android AsyncTask Documentación
http://developer.android.com/reference/android/os/AsyncTask.html