Wie AsyncTask wenn Aktivität beendet abbrechen?
-
22-09-2019 - |
Frage
In meiner Tätigkeit verwende ich mehrere AsyncTask Klassen.
Wie AsyncTask wenn Aktivität beendet abbrechen?
Andere Tipps
Ich denke, der beste Ort, dies zu tun ist onStop
protected void onStop() {
super.onStop();
/*
* The device may have been rotated and the activity is going to be destroyed
* you always should be prepared to cancel your AsnycTasks before the Activity
* which created them is going to be destroyed.
* And dont rely on mayInteruptIfRunning
*/
if (this.loaderTask != null) {
this.loaderTask.cancel(false);
}
}
in meiner Aufgabe, die ich dann so oft überprüfen wie möglich, wenn Abbrechen genannt wurde
protected String doInBackground(String... arg0) {
if (this.isCancelled()) {
return null;
}
}
und natürlich vergessen Sie nicht, Daten zu löschen, die möglicherweise zurückgegeben, da es nicht mehr Aktivität ist es zu erhalten
protected void onPostExecute(List<UserStatus> result) {
if(!this.isCancelled()) {
//pass data to receiver
}
}
Der AsyncTask Faden wird in einem Thread-Pool für zukünftige Fälle von AsyncTask am Leben gehalten. Sie können sie nicht entfernen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow