Von dem, was ich erlebt habe:
Zunächst wird der Timer stoppt, wenn die App in den Hintergrund geht schnell Batterie zu stoppen und die Lebensdauer der Batterie erweitern sogar Netzwerk speichern bündelt Quotenverbrauch während Sie die App nicht aktiv nutzen.
Sie tun können, Hintergrund holen Aufgaben durch die folgenden in der AppDelagate
Zugabe „wie Sie erwähnt“:
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
//Do whatever you need
//This will keep running for max 3 mins
}
Aber das gleiche gilt für Hintergrundaufgaben holen. Sie haben maximal 3 Minuten Hintergrundaktivität, außer den Locations Services, Audio Playing, VOIP und einigen anderen Aufgaben.
Ich weiß wirklich nicht die Verwendung und die Funktionalität der App und warum müssen Sie alle 1 Stunde Daten vom Server greifen, wenn die App bereits geschlossen ist und der Benutzer nicht besorgt ist, die aktualisierten Daten zu sehen.
Aber wenn diese Daten wichtig sind, aktualisiert jede Stunde und muss den Benutzer mit den Updates "zum Beispiel die Überprüfung des Status eines bestimmten Ereignisses auf dem Server, wie eine Chat-App und der Benutzer eine Nachricht erhalten benachrichtigt ". Dann ist es besser, eine Remote-Push-Benachrichtigung an den Benutzer vom Server zu senden, wenn ein bestimmtes Ereignis stattfindet. Dadurch wird der Benutzer die App erneut im Vordergrund abrufen und die App wird die aktualisierten Daten "in meinem Fall abrufen hier die Nachricht ".
Nicht für unendliche Zeit möglich !! – TheTiger
aber backgrount fetch funktioniert, wenn meine App beendet ist? @TheTiger –
Sie können Daten nur einmal abrufen, wenn der Anwendungsstatus in den Hintergrund geändert wird, aber nicht für immer. – TheTiger