2016-10-20 5 views
0

Gibt es trotzdem eine Hintergrundaufgabe auf iOS? Wie in regelmäßigen Abständen überprüfen einige Systemzustand des Telefons und Bericht über das Widget?Regelmäßige Hintergrundaufgabe unter iOS

Auch festgestellt, dass, wenn das iPhone heruntergefahren ist, dann diese Hintergrund-Task nicht erneut ausgeführt werden kann, wenn das Telefon neu starten.

Antwort

1

Die kurze Antwort: Nein. Die lange Antwort ist nuancierter, aber Sie sollten es trotzdem nicht tun. Sie können Ihre Anwendung für die Hintergrundaktualisierung einplanen, aber das ist unzuverlässig (die App wird nicht in konstanten Intervallen ausgeführt), und wenn der Benutzer die App im Task-Switcher wischt, wird die App überhaupt nicht im Hintergrund ausgeführt. Ein weiterer hacky Weg ist, einen Server einen stillen Push senden, um die App zuverlässiger zu wecken. Dies ist jedoch immer noch nicht garantiert; Wenn der Benutzer die App im Task-Switcher wischt, wird Ihre App nicht ausgeführt.

In beiden Fällen können Sie Widget-Updates nicht über Ihre App auslösen. Die Lebensdauer des Widgets wird vom Betriebssystem verwaltet. Implementiere stattdessen widgetPerformUpdate(completionHandler:) und führe dort deine Widget-Updates durch. Wie oben ist dies jedoch keine periodische Operation.

+0

Danke. Deine Antwort ist klar. Wenn die App immer im Hintergrund ist (angenommen, der Benutzer wird nicht wischen), kann ich noch einige periodische Aufgabe tun? d. h. Jede Methode, um zu bewirken, dass die App einige Codes ausführt, wenn sie inaktiv ist. – user6539552

+0

Wenn der Benutzer nicht wischt, ist Ihre beste Wette eine stille Push-Benachrichtigungen (eine Payload mit nur 'contentAvailable: 1'). Dadurch wird die App aktiviert und Sie können starten. –

Verwandte Themen