Frage Unterschied zwischen FutureTask und AsyncTask in Android


Ich möchte den Unterschied wissen zwischen FutureTask und AsyncTask auf Android. Nach meinen Vorstellungen können wir die aktuelle Situation in FutureTask ermitteln. Verwenden ExecutorService Wir können einen Pool von parallelen Prozessen erstellen. Die gleiche Eigenschaft können wir mit AsyncTask erreichen. Ich möchte wissen, in welcher Situation AsyncTask verwendet werden soll und wann FutureTask verwendet werden soll.

Ich habe gefragt Frage  Hier aber keine Antwort bekommen. Jetzt denke ich, dass ich meinen Weg ändern sollte, Webservice-Daten zu erhalten. Also ich denke ich sollte verwenden FutureTask weil sie wie isDone () funktionieren

und abbrechen. Bitte helfen Sie mir eine bessere Möglichkeit, Daten von Web-Services zu erhalten. weil mein textView den Adapter zu langsam setzt.

Oder ich brauche einfach eine Möglichkeit, die laufenden AsyncTasks abzubrechen oder sie durch die aktuelle zu ersetzen. Wenn der Benutzer drückt w Es ruft die AsyncTask auf und wenn er ein Wort in AutotextView hinzugefügt hat, ruft es dreimal auf waka eins für wa und wak und eins für waka . Ist es möglich, die laufende Aufgabe abzubrechen, wenn der Benutzer einen anderen Text drückt? Sieh mein Frage hier für Details.


5
2017-07-25 07:54


Ursprung


Antworten:


AsyncTask bietet Rückrufe (onPreExecute, onProgressExecute, und onPostExecute), die garantiert auf dem UI-Thread ausgeführt werden.

FutureTask bietet keine Rückrufe und weiß nichts über den Android-UI-Thread. In der Tat sollten Android-Apps nicht aufrufen Future.get() aus dem UI-Thread, weil es blockieren könnte.

Für typische Android-App-Entwicklung, verwenden AsyncTask.


1
2018-04-20 21:17