Background task wiederholt ausführen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Background task wiederholt ausführen

    Hi,

    ich möchte im Hintergrund innerhalb eines noch festzulegenden Intervalls Daten von einem Server abrufen, bzw. ggf. auch eine sehr geringe Menge von Daten dort hin übertragen. Das ganze soll auch laufen, wenn die App nicht aktiv ist.

    Soweit ich gelesen habe kann man das mit Background Task machen.
    1. Frage: welche Capabilities wäre dafür notwendig? Background fetch, Newsstand downloads, oder was?

    2. Frage: Die Beispiele, die ich bisher im Internet gefunden habe beginnen alle mit UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler und enden mit endBackgroudTast. Das heißt, sie laufen einmal durch, sind dann aber beendet. Ruft man die einfach über einen NSTimer wieder auf? Laufen Timer überhaupt, wenn die App nicht aktiv ist?

    3. Frage: Gibt es irgendwo ein gutes, deutschsprachiges Tutorial, wo genau diese Art der Aktualisierung gut erklärt wird? Ich hab nur englische gefunden, wobei ich mir bei denen nicht immer so ganz sicher bin, dass ich alles richtig verstanden habe.

    Danke
    Gruß Dieter
  • Du kannst über Background Fetch Daten im Hintergrund abfangen. Allerdings kannst du die Downloadzeiten nur sehr grob vorgeben. Es gibt auch die Möglichkeit, Hintergrundabfragen über Push-Notifications zu triggern.

    Daten im Hintergrund zu pollen, ist in der Regel nicht sonderlich sinnvoll.
    „Meine Komplikation hatte eine Komplikation.“
  • Bei der ganzen Sache geht es aber darum, dass einen Request einer LAN-Url feststellen will, ob der User sich im eigenen WLAN befindet. Der Request soll sowieso nur gesendet werden, wenn er a) mit einem WLAN verbunden ist und b) es sich um ein WLAN mit seiner SSID handelt.
    Den Punkt mit WLAN verbunden und ist SSID = seine SSID habe ich schon gelöst. Allerdings kann es natürlich auch passieren, dass er sich in einem WLAN befindet dessen SSID seiner entspricht, es aber trotzdem nicht sein WLAN ist. Und für diesen Fall will ich eine URL Abfrage, deren Antwort (wobei sowohl im Request als auch in der Antwort Daten übertragen werden sollen, aber nur ein paar Byte) nur kommen kann, wenn er sich in seinem WLAN befindet.
    Das jetzt über Push-Notification zu machen, erscheint mit nicht zweckmäßig.
  • Wenn du zu häufig eine Anfrage sendest, ist irgendwann der Akku leer. Aus diesem Grund hat Apple den Hintergrundbetrieb sehr eingeschränkt. Abgesehen davon ist doch das Ermitteln des aktuellen WLAN-Netzes ein anderer Anwendungsfall als das Übertragen von Daten.
    „Meine Komplikation hatte eine Komplikation.“
  • Captnemo schrieb:

    2. Frage: Die Beispiele, die ich bisher im Internet gefunden habe beginnen alle mit UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler und enden mit endBackgroudTast. Das heißt, sie laufen einmal durch, sind dann aber beendet. Ruft man die einfach über einen NSTimer wieder auf? Laufen Timer überhaupt, wenn die App nicht aktiv ist?

    3. Frage: Gibt es irgendwo ein gutes, deutschsprachiges Tutorial, wo genau diese Art der Aktualisierung gut erklärt wird? Ich hab nur englische gefunden, wobei ich mir bei denen nicht immer so ganz sicher bin, dass ich alles richtig verstanden habe.
    wofür verwendet man "Newsstand Downloads"?