ich habe ein AsyncTask Klasse, die ich ausführe und die eine große Liste von Daten von einer Website herunterlädt.
Für den Fall, dass der Endbenutzer zum Zeitpunkt der Verwendung eine sehr langsame oder fleckige Datenverbindung hat, möchte ich das AsyncTaskZeitlimit nach einer bestimmten Zeit festlegen. Mein erster Ansatz dazu ist wie folgt:
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 );
Nach dem Start von AsyncTaskwird ein neuer Handler gestartet, der den Vorgang AsyncTasknach 30 Sekunden abbricht, wenn er noch ausgeführt wird.
Ist das ein guter Ansatz? Oder ist etwas eingebaut AsyncTask, das für diesen Zweck besser geeignet ist?