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 AsyncTask
Zeitlimit 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 AsyncTask
wird ein neuer Handler gestartet, der den Vorgang AsyncTask
nach 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?