Gibt Daten aus der AsyncTask-Klasse zurück

8

Wie bekomme ich die Daten von meiner AsyncTask? Meine MainActivity ruft die DataCall.getJSON-Funktion auf, die die AsyncTask auslöst, aber ich bin nicht sicher, wie die Daten zu der ursprünglichen Aktivität zurückgeholt werden.

MainActivity mit Aufruf von DataCall, der eine Zeichenfolge zurückgeben und in state_data

speichern soll %Vor%

DataCall:

%Vor%     
Denoteone 01.10.2011, 06:32
quelle

6 Antworten

7

Der Schlüssel für mich war, eine Klasse namens URLWithParams oder so etwas zu erstellen, weil AsyncTask nur 1 Typ IN senden lässt, und ich benötigte sowohl die URL als auch die Parameter für die HTTP-Anfrage.

%Vor%

und dann sende ich es an einen JSONClient:

%Vor%

Dann rufe es von meiner Hauptklasse wie folgt auf

%Vor%     
Thunder Rabbit 02.10.2011, 06:33
quelle
24

Ändern Sie Ihre AsyncTask wie folgt:

%Vor%

und verwende es in deiner Aktivität

%Vor%

HINWEIS : Für die Leute, die das lesen.

Bitte beachten Sie diese Post für die beste und vielleicht richtige Implementierung.

    
Adil Soomro 01.10.2011 06:53
quelle
1

Obwohl ich die Erstellung einer neuen Aktivität für diese einfache Aufgabe nicht stimme, gibt es

%Vor%

um Daten von einer anderen Aktivität zu erhalten.

Überprüfen Sie dies . Sie können Ihre Daten in den Extras der Intent speichern. Aber wenn Sie eine große Menge an Daten haben, schreiben Sie besser in eine Datei, erhalten Sie das Ergebnis der anderen Aktivität, die heruntergeladen wird, und lesen Sie dann die Datei.

    
weakwire 01.10.2011 06:39
quelle
1

Serialisieren Sie es und lesen Sie es dann. Die einzige Weise, die ich kenne.

    
asenovm 01.10.2011 06:36
quelle
1

Einige Optionen:

a) Lassen Sie Ihr Bean Serializable interface implementieren, dann können Sie Ihre Bean durch Intent übergeben.

b) Implementieren Sie Application interface (Sie müssen einen Eintrag im Manifest erstellen). Verfügen Sie über die Methode setter \ get in Ihrer Anwendungsklasse. Sie können Ihre Bean in der Anwendung von AsyncTask setzen und später von Activity abrufen.

    
Siddhartha 01.10.2011 06:44
quelle
0

Entschuldigung, dass ich so spät geantwortet habe, ich denke, zu diesem Zeitpunkt haben Sie vielleicht dieses Problem gelöst. Als ich nach etwas anderem suchte, stieß ich auf deine Frage. Ich gebe einen Link hier was für andere hilfreich sein könnte.

    
Jayanth N 13.02.2013 06:42
quelle

Tags und Links