aSync Task kann nicht zweimal ausgeführt werden

8

Ich arbeite an einer App, die eine Datei auf den Server hochladen muss. Aber um die Dateien hochzuladen, die es braucht, um sich einzuloggen (funktioniert), lies dann die URL (funktioniert) und lade dann (Force Close) hoch

Die logcat:

%Vor%

Mein Code: (handleJsonObject):

%Vor%

Der Code (aSync), der den Postcode aufruft (handleJsonObject):

%Vor%

Ich kann nicht herausfinden, warum der Code nicht funktioniert? Jede Hilfe wird sehr geschätzt!

    
Stian Instebo 13.10.2013, 12:16
quelle

4 Antworten

28

Wie die Ausnahme selbst erklärt, können Sie AsyncTask nicht mehr als einmal ausführen, es sei denn, Sie erstellen eine new -Instanz davon und rufen .execute auf.

Zum Beispiel:

%Vor%

* Um mehr als einmal ausgeführt zu werden, müssen Sie die Instanz (mit new ) so oft neu erstellen, wie Sie ausführen möchten.

    
waqaslam 13.10.2013, 12:22
quelle
0

Ich benutze diesen Code und es funktioniert für mich:

%Vor%     
yader_centeno 19.12.2014 23:53
quelle
0

Sie können den Aufruf abbrechen, indem Sie eine asynchrone Instanz mit async.cancel (true) aufrufen, damit Sie sicherstellen können, dass nur eine Instanz von async

vorhanden ist     
He Termis 14.07.2016 07:40
quelle
-1

Sie können AsyncTask nicht mehr als einmal ausführen. Um diesen Fehler zu beheben, wickeln Sie ihn einfach in eine Bedingung wie diese:                    async = neue AsyncTask ();

%Vor%

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, Asynctask in einem Viewpager auszuführen. Wenn Sie asynctask in einem Fragment ausführen und zum nächsten Fragment wischen, wird durch die Rückkehr zum vorherigen Fragment eine erneute Ausführung der asynctask in diesem Fragment ausgelöst, wodurch die App abstürzt. Daher müssen Sie überprüfen, ob die asynctask bereits ausgeführt wurde, indem Sie sie in eine Bedingung einschließen.

    
boakye_wozniac 17.10.2014 04:27
quelle