Ich habe eine Frage zu Alamofire und seinem Verhalten mit einem für Hintergrundaufgaben konfigurierten SessionManager. Ich verwende es, um ein Video im Hintergrund hochzuladen.Verketten von Hintergrundaufgaben Alamofire
Schritt I: Hochladen von Video:
Dieser Teil ist Standard, jedoch, wenn der Upload abgeschlossen ist:
Schritt II: Die Komponenten Upload:
Ich brauche eine DELETE-Anfrage an den Server senden lassen Sie wissen, dass der Video-Upload abgeschlossen ist. Bei Erfolg enthält die Antwort einen Standort-Header für das neu hochgeladene Video.
Schritt III Video-Metadaten hinzufügen:
Mit diesem Ort ich die Video-Metadaten zu PATCH Anfrage benötigen: Titel und Beschreibung.
Also meine Frage ist über das Überschreiben der Session Manager Delegate Closures. Ich kann sessionDidFinishEventsForBackgroundURLSession
und taskDidComplete
überschreiben und wenn ich mit dem Hintergrund vollständig fertig bin, muss ich das System completionHandler aufrufen, das ich als eine Eigenschaft im SessionManager ablege ... Also wann/wo soll ich die DELETE-Anfrage abfeuern und dann/Wo soll ich die PATCH-Anfrage auslösen?
Sollte ich 3 verschiedene Hintergrundsitzungskonfigurationskennungen erstellen, damit ich sie identifizieren kann und sicherstellen kann, dass ich sie in der richtigen Reihenfolge kette? Denn offensichtlich kann ich nicht sagen, in der Schließung: das erste Mal, dass Sie genannt werden, feuern Sie diese Anfrage, aber das zweite Feuer aus diesem einen? Und welcher Abschluss der 2 ist der richtige, um den gesamten Prozess abzuschließen und das System CompletionHandler zu nennen? Ich bin mir nicht sicher, ob das richtig ist, weil ich mit dem Alamofire Upload-Antwort-Handler nicht synchron sein werde.
Auch ich wundere mich über die Alamofire Antworthandler. Wenn die App die ganze Zeit im Vordergrund stand? Ich würde die Alamofire-Anfragen einfach unter Verwendung der Antworthandler verketten? Aber wenn die App beendet wird und im Hintergrund läuft, werden diese Handler immer noch da sein?
Jeder Einblick hier würde sehr geschätzt werden. Mir ist klar, dass hier eine Menge los ist und Apple Even Rate beschränkt Hintergrundaufgaben, ich frage mich nur, ob das möglich ist und wenn ja, wie es geht?
Machen Sie es lesbarer, indem Sie es in Teile mit Absätzen teilen. –