mam AsyncTask
klasę, którą wykonuję, która pobiera dużą listę danych ze strony internetowej.
W przypadku, gdy użytkownik końcowy ma bardzo powolne lub przerywane połączenie danych w momencie użycia, chciałbym AsyncTask
ustawić limit czasu po pewnym czasie. Moje pierwsze podejście do tego jest takie:
MyDownloader downloader = new MyDownloader();
downloader.execute();
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run() {
if ( downloader.getStatus() == AsyncTask.Status.RUNNING )
downloader.cancel(true);
}
}, 30000 );
Po uruchomieniu uruchamiany AsyncTask
jest nowy program obsługi, który anuluje działanie AsyncTask
po 30 sekundach, jeśli nadal działa.
Czy to dobre podejście? A może jest coś wbudowanego, AsyncTask
co lepiej nadaje się do tego celu?