AsyncTaskLoader abbrechen

Hallo,

ich verwende den AsyncTaskLoader der android support lib v4 innerhalb eines Fragmentes, um meine Daten aus der Datenbank zu holen.Leider existiert die cancelLoadInBackground() nicht bei API Level 8, wodurch ich offenbar keine Möglichkeit habe, den aktuellen Task abzubrechen, wenn das Fragment ersetzt wird und der Task läuft im Hintergrund weiter.

Es gibt noch zwei weitere Methoden: cancelLoad() und stopLoading(), die beide offenbar keinen Effekt haben.

Wie kann ich das Teil beenden?

MfG

Wo ist denn das Problem? Zerschießt dir der Loader noch irgend etwas? Im Normalfall läuft das Teil einfach weiter und wird bei de nächsten Gelegenheit beendet.

Siehe auch die Doku:

Cancellation is not an immediate operation, since the load is performed in a background thread. If there is currently a load in progress, this method requests that the load be canceled, and notes this is the case; once the background thread has completed its work its remaining state will be cleared. If another load request comes in during this time, it will be held until the canceled load is complete.

Wenn du verhindern möchtest, dass etwas bestimmtes passiert bau ein Flag in deine Loader-Klasse ein die du setzt wenn cancelLoad aufgerufen wird.

[QUOTE=schlingel]Wo ist denn das Problem? Zerschießt dir der Loader noch irgend etwas? Im Normalfall läuft das Teil einfach weiter und wird bei de nächsten Gelegenheit beendet.

Siehe auch die Doku:

Wenn du verhindern möchtest, dass etwas bestimmtes passiert bau ein Flag in deine Loader-Klasse ein die du setzt wenn cancelLoad aufgerufen wird.[/QUOTE]

Ja und bei mir wird es eben garnicht beendet und läuft bis zum ende durch, und das darf eben nicht, denn dann könnte man den Task theoretisch mehrfach starten und dann zerschießt es mit Sicherheit was.

Das mit der Flag werde ich mal probieren, keine schlechte Idee :smiley:

Trotzdem finde ich es seltsam dass es nicht einfach so funktioniert