ich einige Verarbeitung tue, wenn die Anwendung den Hintergrund Zustand eintritt, habe ich es unter den beginBackgroundTaskWithExpirationHandler() setzen und damit sollte 10 Minuten für das gleiche zugeteilt. Ich glaube jedoch, dass die App davor eingestellt wird. Die Task, die ich ausführe, ist speicher- und rechenintensiv. Ist es also möglich, dass das Betriebssystem meine App in den Status "Aussetzen" versetzt?
Wenn ja, gibt es eine Möglichkeit, diese Einschränkungen zu umgehen. (Ich bin offen für die Verwendung privater APIs). Hiereine endliche Länge Hintergrundaufgabe Lauf
ist der Code für das Starten der Hintergrundaufgabe:
if([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]){
if([[UIDevice currentDevice] isMultitaskingSupported]){
__block UIBackgroundTaskIdentifier bgTask;
UIApplication *application = [UIApplication sharedApplication];
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self captureImage];
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
}
Können Sie den Code anzeigen, den Sie zum Starten der Hintergrundaufgabe verwenden? – Nate
Wie zur Hölle ist das * keine echte Frage *? – Nate