AsyncTask Wiederholen
Habe ich einen Zweifel über die Möglichkeit der Wiederholung eines AsyncTask in einer Anwendung für Android. Ich möchte wiederholen, einige Operationen, die den download einer Datei von einem server aus zum Beispiel n-mal, wenn es unmöglich ist, für einige Gründe, die Datei herunterzuladen. Es gibt einen schnellen Weg, dies zu tun?
- Was genau ist das problem? Sie können einfach starten Sie die gleiche AsyncTask wieder, wenn es fehlgeschlagen ist.
- die Nutzung des service und alaram manager-Klasse für die Wiederholung Asynchrone Aufgabe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht wiederholen AsyncTask aber könnten Sie wiederholen die Operationen, die Sie führt.
Habe ich dieses kleine Helfer-Klasse, die Sie vielleicht zu erweitern, statt der AsyncTask, der einzige, große Unterschied ist, dass Sie repeatInBackground statt doInBackground und onPostExecute wird einen neuen parameter, der eventuellen Ausnahme geworfen.
Alles, was in repeatInBackground wird automatisch wiederholt, bis das Ergebnis unterscheidet sich von null /exception wird nicht geworfen und es sind weniger als maxTries.
Die Letzte Ausnahme innerhalb der Schleife wird wieder in der onPostExecute(Result, Ausnahme).
Können Sie einstellen, max versucht mit dem RepeatableAsyncTask(int retries) - Konstruktor.
Können Sie die Wiederverwendung der gleichen
AsyncTask
Objekt als, nach dem AsyncTask DocsAber Sie können schaffen aber viele neue Objekte der Klasse müssen Sie innerhalb einer Schleife. Aber eine bessere Weise, Sie zu tun, den download-Vorgang n-mal in Ihrem
doInBackground()
.Wenn das nicht Ihre Frage beantwortet, dann bitte etwas konkreter zu deinem problem
Ich es auch so gemacht hat. Kann es versuchen und versuchen, bis (versucht == MAX_RETRY) oder das Ergebnis nicht null ist. Ein leicht modifizierter code von akzeptierten Antworten, besser für mich.