Chcę użyć AsyncTask, aby sprawdzić adres InetAdress, na przykład w kodzie poniżej. Zmienna tempInet jest globalną zmienną, która wskazuje, czy strona była możliwa do nawiązania, czy nie.Jak anulować AsyncTask Androida po określonym czasie? (Np. 10 sekund)
Zaczynam AsyncTask z kodem ... new InetAsyncTask(). Execute ("www.facebook.com");
Mój problem polega na tym, że chcę, aby AsyncTask anulował się po (powiedzmy) 10 sekundach.
Kilka innych pytań sugeruje użycie metody get (10, TimeUnit.SECONDS). Chciałbym to zrobić, ale nie wiem, gdzie/jak umieścić metodę get. Z execute? W metodzie doInBackground?
Co więcej, czy metoda get() blokuje główny wątek? Jeśli tak, jaki jest tego sens?
Każda pomoc doceniona.
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
Podobne pytania
Android - Setting a Timeout for an AsyncTask?
stop async task after 60 second
Android Developers AsyncTask Dokumentacja
http://developer.android.com/reference/android/os/AsyncTask.html