2011-01-17 10 views
2

mit sdk 4.2. Ich habe ein Problem, wenn meine App beendet wird (in den Hintergrund gesendet wird) und dann sofort, wenn der Benutzer sie neu startet. Ich habe bemerkt, dass der Thread für die Hintergrundaufgabe noch läuft. Das stört dann alle Initialisierungen, die ich bei der Rückkehr in den Vordergrund-Thread mache.Abbrechen der Hintergrundaufgabe beim Zurückkehren in den Vordergrund

Wie soll ich damit umgehen, gibt es eine Möglichkeit, den Hintergrund Task-Thread vollständig abzubrechen, wenn Sie in den Vordergrund zurückkehren.

Dank

+0

@ Tech24 - Erstellen Sie einen anderen Thread mit GCD, um einige Aufgaben im Hintergrundmodus zu erledigen? Besser: Wie stellen Sie Ihre Aufgabe im Hintergrund auf? – Trinca

Antwort

0

Ich nehme an, Sie etwas ähnlich der folgenden verwenden, das Gerät informieren Sie einen Hintergrundprozess sind ausführen:

_myTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:myHandler]; 

Sie sollten dies auch, wenn der Hintergrund durchführen Aufgabe abgeschlossen ist normalerweise oder wenn Sie die Aufgabe in myHandler abbrechen:

[[UIApplication sharedApplication] endBackgroundTask:_myTaskID]; 
_myTaskID = UIBackgroundTaskInvalid; 

Nimmt man nun an, dass you'r Neuinitialisierung Ihre Anwendung in Ihrem UIApplic actionDelegate applicationWillEnterForeground: oder als Antwort auf eine UIApplicationWillEnterForegroundNotification müssen Sie einfach überprüfen, ob _myTaskID auf UIBackgroundTaskInvalid gesetzt ist, um festzustellen, ob Ihre Hintergrundaufgabe noch ausgeführt wird.

Sie haben nicht angegeben, welche Art von Aufgabe in Ihrer Hintergrundaufgabe ausgeführt wird, aber Ihre Anwendung sollte vorbereitet sein, damit diese Aufgabe abgeschlossen wird, wenn die Anwendung in den Vordergrund zurückkehrt, während die Aufgabe noch ausgeführt wird. Andernfalls sollten Sie möglicherweise erneut eine Hintergrundaufgabe verwenden.

+0

Danke, ja, tatsächlich tue ich es so. Ich muss also nur warten, bis diese Aufgabe abgeschlossen ist – tech74

Verwandte Themen