ObjectiveCeeds › iOS 7: Background Fetch

iOS 7: Background Fetch

Von Manfred Kreß
Hintergründiges
Seite 2 von 3



Wer nun eventuell sein Fetch Intervall schon auf 5 Sekunden eingestellt hat, wird vielleicht etwas enttäuscht sein, weil die App nicht alle 5 Sekunden ihre Daten aktualisiert. Nun ja, wie bereits erwähnt, das Multitasking ist immernoch das Alte. Auch in iOS 7 bekommen Apps, die im Hintergrund laufen, nicht einfach Rechenzeit, wie es dem Entwickler beliebt. Lange Akkulaufzeiten sind Apple nach wie vor wichtiger als Narrenfreiheit - zum Glück! Statt dessen gibt iOS 7 unseren Apps in gewissen Abständen etwas Rechenzeit. "In gewissen Abständen", "etwas". Apple macht keien genauen Angaben, wie viel das genau ist, aber sie ist - Zitat WWDC 2013 - "ausreichend". Also genau so wie die PS Angaben bei einem Rolls Royce. So funktioniert das auch schon immer bei Apple Programmen wie Mail oder dem AppStore, die regelmäßig nach updates schauen. Wie oft und wie viel, hängt von vielen Faktoren ab, die Apple lieber für sich behält. Die Aufrufe bewegen sich aber im Bereich von Stunden, nicht Minuten. Dazu kommt das iOS 7 das Nutzerverhalten registriert (und hoffentlich genauso geheim hält wie die anderen Informationen). iOS 7 "merkt" z.B. wenn eine App immer gegen 8:00 Uhr benutzt wird, dann vielleicht noch einmal um 12:00 Uhr. Die Fetches werden dann so gefahren, das sie immer vor 8:00 bzw. 12:00 statt finden, und die App beim Start auf dem neusten Stand ist. Umgekehrt registriert das System, wenn die App z.B. zwischen 13:00 und 8:00 gar nicht mehr benutzt wird und fährt das Updateintervall entsprechend herunter. Wenn das Fetch Intervall auf UIApplicationBackgroundFetchIntervalMinimum eingestellt ist, werden die Aufrufe unserer Fetch Methode mit dem kürzest möglichen Intervall gefahren. Das sollte die Default Einstellung für regelmäßige Aktualisierungen sein. Eigene Werte, werden hier nur berücksichtigt, wenn die Intervalle länger sein sollen, also die App z.B. einmal Täglich bei ihrem Server nach neuen Daten fragen soll. Weiterhin wird die Frequenz der Abfragen dadurch geregelt, was wir dem completitionHandler übergeben - UIBackgroundFetchResult. Bei neuen Daten, wird ein neuer Screenshot erstellt. Teilt man dem System allerdings über den completitionHandeler oft mit, das keine neuen Daten gibt, wird es auch das Fetchintervall entsprechend verlängern - bzw. wieder verkürzen, wenn öfters neue Daten kommen. Weiterhin sollte man noch wissen, das letztendlich der User die volle Kontrolle über die Hintergrundaktivitäten hat. Wischt er unsere App elegant aus dem Taskmanager, ist auch mit Backgroundfetches schluß. Und in den Einstellungen kann der Anwender für jede App einzeln festlegen, ob sie Hintergrundzeit zur Verfügung gestellt bekommt oder nicht. Fazit: Dieses Feature war lange überfällig. Apple hat meiner Meinung nach einen guten Kompromiss gefunden, der die Akkulaufzeit nicht zu sehr strapaziert, aber trotzdem dem Entwickler die Möglichkeit gibt, periodisch seine Daten zu aktualisieren.

« vorige Seitenächste Seite »
Seite: 2 von 3


iOS 7: Background Fetch

Vordergründiges
Hintergründiges
Code