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 AsyncTaskustawić 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 AsyncTaskjest nowy program obsługi, który anuluje działanie AsyncTaskpo 30 sekundach, jeśli nadal działa.
Czy to dobre podejście? A może jest coś wbudowanego, AsyncTaskco lepiej nadaje się do tego celu?