iphone - Verbindung zum Server im Hintergrund

8

Ich erstelle eine App, die sich mit dem Server verbindet und Text sendet. Wenn das Netzwerk (sowohl WLAN als auch 3G) vorhanden ist, wird der Text sofort an den Server gesendet. Wenn jedoch kein Netzwerk vorhanden ist, wird weiterhin alle 5 Minuten nach einer Serververbindung gesucht. All dieser Teil funktioniert gut.

Aber wenn ich ein iPhone 4-Gerät verwende, möchte ich, dass die App nach einer Serververbindung sucht, selbst wenn die App in den Hintergrund tritt. Wenn die App also in den Hintergrund tritt und wenn das Netzwerk zurückkommt, muss es in der Lage sein, den Text an den Server zu senden.

Wie kann ich es erreichen? Ich habe in einigen Apps gesehen, dass die App Fotos auch im Hintergrund auf den Server hochlädt. Wie werden sie es tun?

    
Satyam 04.01.2011, 13:52
quelle

4 Antworten

13

Ich schlage vor, dass Sie diesen Artikel von Apple sorgfältig lesen, insbesondere den Beenden einer Aufgabe mit begrenzter Länge im Hintergrund .

Ссылка

Etwas zu klären:

  • Sobald Ihre App im Hintergrund läuft und vom Betriebssystem eingefroren ist, gibt es für Ihre App keine Möglichkeit, selbst zu wecken das Internet.
  • Gemäß dem obigen Artikel von Apple können Sie diese beginBackgroundTaskWithExpirationHandler -Methode jedoch vom Delegaten Ihrer App aus aufrufen, um zusätzliche Zeit zu beantragen, wenn sie in den Hintergrund gestellt wird, was Ihrer App jedoch nicht möglich ist wache auf, wenn es im Hintergrund ist, kann es, wenn im Hintergrund und nicht eingefroren, versuchen, zusätzliche Zeit zu beantragen, um seine langwierige Aufgabe zu beenden.

Ich hoffe, es hilft.

    
Di Wu 04.01.2011 14:35
quelle
2

Es gibt einen Trick, den ich glaube, dass flayvr verwendet.

Wenn Sie die App herunterladen und verwenden, werden Sie feststellen, dass Sie Ihren Standort aktivieren müssen. Und warum ist das? weil sie möchten, dass Sie etwas im Hintergrund tun, selbst wenn die App beendet wird (sie erstellen ein Album aus Ihren neu aufgenommenen Fotos), und wie machen sie das?

Sie verwenden die signifikante Standortänderung, bei der, wenn jemand eine beträchtliche Entfernung (etwa 500m) zurücklegt, jede App, die sich für eine signifikante Standortänderung registriert hat, für eine begrenzte Zeit aufgeweckt wird, um eine schnelle Aufgabe auszuführen ein paar Sekunden.

So kann sich Ihre App auch für dieses Ereignis registrieren, und wenn das Ereignis einer signifikanten Standortänderung ausgelöst wurde, können Sie den Text (schnell) an den Server senden.

Ich hoffe, das hilft.

    
ozba 28.01.2013 21:08
quelle
2

Bis jetzt können Sie das unter iOS7 mit Hintergrund holen machen. Werfen Sie einen Blick auf diesen Artikel .

Allerdings haben Sie nur bis zu 30 s , um die Aufgabe zu erledigen. Laut dem obigen Artikel gibt es auch eine andere Lösung namens Hintergrundübertragungsdienst .

  

Wenn jedoch mehr Zeit benötigt wird, dann der Hintergrundübertragungsdienst   API kann verwendet werden

    
FlySoFast 06.02.2015 02:16
quelle
1

Erstellen Sie ein neues Projekt in Xcode, und Sie werden feststellen, dass eine Reihe neuer Methoden automatisch in der Anwendungsdelegatendatei generiert wird. wie applicationDidEnterBackground, applicationWillEnterForeground etc.

Lesen Sie die Beschreibung Sie müssen Ihren Thread aufrufen, um Daten auf Server hier zu laden.

    
kthorat 04.01.2011 14:33
quelle

Tags und Links