Was ist die beste Vorgehensweise zum Erstellen einer persistenten Aufgabenwarteschlange in iOS-Anwendungen?

8

Ich benutze die Dispatch-Warteschlange, um eine Reihe von Hintergrund-Aufgaben zu verwalten (lade mehrere Dateien auf Benutzeranfrage herunter und ohne in der Benutzeroberfläche zu warten) und bis jetzt hat es funktioniert. Darüber hinaus muss ich die nicht abgeschlossenen Aufgaben persistieren, also zum Beispiel, wenn es keine Netzwerkreichweite gibt, oder die App abgestürzt ist oder der Akku des Telefons leer ist, wenn das Programm das nächste Mal ausgeführt wird, werden alle Aufgaben automatisch fortgesetzt.

Ich plane, jeden Aufgabenblock dazu zu bringen, die Aufgabe in einem Kerndatenkontext zu speichern, und entferne sie, sobald die Aufgabe erledigt ist. Außerdem muss ich beim Start der App überprüfen, ob eine Aufgabe zu erledigen ist .

Was ist die beste Vorgehensweise beim Erstellen einer solchen Anwendung? Gibt es Beispiele, Tutorials oder Bibliotheken, die ich wiederverwenden kann?

    
Robert Mao 29.07.2011, 01:13
quelle

2 Antworten

4

Deine Technik sollte ziemlich gut funktionieren. Entwerfen Sie die Klasse, die Ihre Hintergrundaufgaben verwaltet, um "blind" alle Aufgaben auszuführen, die ihr übergeben werden.

Übergeben Sie Aufgaben an diese Klasse von Ihren verschiedenen View-Controllern. Die Methode submit sollte aussehen wie

%Vor%

Ich nehme an, dass MyTask eine Unterklasse von NSOperation und taskQueue eine NSOperationQueue ist. RunningTasks ist einfach ein NSMutableArray, das auf die Festplatte serialisiert wird (entweder in CoreData oder in einem anderen Format), wenn Sie eine UIApplicationDidEnterBackgroundNotification erhalten.

Sie können ein ähnliches Design auch mit GCD implementieren.

    
Mugunth 29.07.2011, 04:31
quelle
2

Schau dir Marco Arments FCOfflineQueue -Bibliothek an:

Ссылка

    
Joel 12.01.2013 01:41
quelle