Ich versuche eine Variable in einer Aktivität auf das Ergebnis meiner AsyncTask zu setzen. Ich habe gelesen, dass ich eine Variable nicht zurückgeben kann und dass ich die Variable in meiner Aktivität einrichten und dann in der onPostExecute
Methode ändern müsste.Wartet auf die Beendigung von ASyncTask oder auf die zu setzende Variable
Mein Problem ist, dass nach der AsyncTask muss ich diese Variable verwenden. Ich habe Probleme damit, weil alle Lösungen, die ich bisher versucht habe, dazu führen, dass die Benutzeroberfläche einfriert und dann nicht reagiert.
Was ich bisher versucht:
while (!task.isCancelled()) {
// Wait...
}
Und
while (variable == null) {
// Wait ...
}
Ist das, was ich die beste Art und Weise machte eine Variable aus dem AsyncTask meiner Tätigkeit zu übergeben? Wenn dies der Fall ist, wie kann ich dann auf die Beendigung der Aufgabe in der Aktivität warten, ohne die Benutzeroberfläche zu sperren?
Sie sollten nicht auf die AsyncTask warten. Es sollte etwas tun, wenn es fertig ist, wahrscheinlich in 'onPostExecute()'. – Eric
In der 'onPostExecute()' Methode ändere ich die Variable in meiner Aktivität in das Ergebnis. Ich versuche zu warten, bis die Variable geändert wird. – Dan
Genau - tun Sie das nicht. Die "AsyncTask" 'onPostExecute()' selbst sollte die Reihe von Ereignissen starten, die nach dem Abschluss der Aufgabe auftreten sollen. Kein anderer Code sollte sich auf diese Aufgabe verlassen. – Eric