Ich möchte die Datenbank in meiner App alle 12 Stunden für Zeilen mit Datum Spalte mit entsprechenden Datum überprüfen. Dies wird erreicht, indem Dienst in Android geschrieben wird. Gibt es aber in iOS vergleichbare Dienste, damit meine Anforderung erfüllt werden kann?Gibt es ein Äquivalent von Android-Diensten in iOS?
Antwort
Nein. Es gibt keine solche Sache im SDK oder im iPhone/iPad im Allgemeinen. Sie können nur Code schreiben, der das Ökosystem der App beeinflusst, nicht das Betriebssystem. Wenn Ihre App geschlossen ist, wird sie geschlossen und es wird keine Aktion ausgeführt, bis der Benutzer sie öffnet/eine Push-Benachrichtigung für Ihre App öffnet.
Wenn der Benutzer standortbasierte Dienste für Ihre App genehmigt hat, gibt es einige Möglichkeiten, einen kurzen Hintergrundprozess auszuführen, selbst wenn Ihre App vollständig geschlossen ist. Einer davon ist Monitoring Shape-Based Regions, was bedeutet, wenn der Benutzer die Region X/eingegebene Region Y die App öffnen und ein paar Befehle ausführen, bevor Sie es wieder schließen.
Der clevere Weg (und der einzige Weg, wie ich denken kann) zu erreichen, was Sie in iOS anstreben, ist diesen Dienst auf einem Server auszuführen und die Daten vom Server zu ziehen, wenn die App geöffnet wird.
Hier finden Sie die Lösung. Hintergrundausführung macht dies.
Hinzugefügt: Apple nicht erlaubt Anwendungen im Hintergrund für die ganze Zeit zu laufen. Es bietet eine begrenzte Zeit, um die Ausführung Ihrer App abzuschließen. Sie können diese Zeit abhängig von Ihrem Ausführungsbedarf erhöhen. Aber das ist nicht zu empfehlen.
Das hat nichts damit zu tun, was die OP verlangt hat. Dienste in Android laufen, wenn die App vollständig geschlossen ist. Der von Ihnen angegebene Link spricht über den Vordergrund oder den Hintergrund. – Segev
@EXEC_BAD_ACCESS tatsächlich die Android-Dienste (wenn von einer App gestartet) nicht ausgeführt, wenn die App vollständig geschlossen ist. Sie können länger im Hintergrund laufen, sind aber immer noch mit der App verbunden, mit der sie gestartet wurden. 'Ein Dienst ist eine Anwendungskomponente, die entweder den Wunsch einer Anwendung darstellt, eine länger andauernde Operation durchzuführen, während sie nicht mit dem Benutzer interagiert, oder die Funktionalität für andere Anwendungen zur Verfügung zu stellen. '(Android-Dokumente). Wenn Sie also eine App schließen, werden alle laufenden Dienste beendet. – danypata
Wusste das nicht, danke. – Segev
In iOS7 und höher können Sie background fetch für diese Aufgabe verwenden. Sie können dieses Tutorial überprüfen: http://code.tutsplus.com/tutorials/ios-7-sdk-working-with-background-fetch--mobile-20520
Sie möchten überprüfen, wenn App im Hintergrund ist? – Durgaprasad
Ich möchte überprüfen, ob App im Hintergrund oder geöffnet ist. – viks
Ich glaube nicht, dass es möglich ist, wenn die App im Hintergrund ist. –