Frage

In meiner Tätigkeit verwende ich mehrere AsyncTask Klassen.

Wie AsyncTask wenn Aktivität beendet abbrechen?

War es hilfreich?

Lösung

Ich verstehe nicht, wenn Ihr „Abbrechen“ bedeutet Rollback aber Sie haben eine abbrechen Methode auf der AsyncTask Klasse.

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
scroll top