AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

iOS App - TTask im Hintergrund

Ein Thema von NickD · begonnen am 27. Jun 2016 · letzter Beitrag vom 27. Jun 2016
Antwort Antwort
NickD

Registriert seit: 10. Okt 2012
Ort: Burgsinn
53 Beiträge
 
Delphi 10.3 Rio
 
#1

iOS App - TTask im Hintergrund

  Alt 27. Jun 2016, 11:50
Hallo zusammen,
ich habe aktuelle eine App die sich mit einem Datasnap Server verbindet, welcher Daten zur Verfügung stellt, die in einer lokalen Datenbank in der App gespeichert werden.
Die Abfrage sowie das Eintragen der Daten in die lokale Datenbank, werden über TTasks gemacht.

Das Problem beginnt, sobald die App in den Hintergrund gelegt wird:
Unter Android funktioniert dies ohne Probleme. Der Task läuft solange, bis alle Daten abgefragt und eingetragen wurden.
Bei iOS stoppt der Task mit der Ausführung nach etwa 10 Sekunden, nachdem die App in den Hintergrund gelegt wurde.
Zwar wird dieser weiter ausgeführt nachdem die App wieder in den Vordergrund kommt, jedoch sollte dies auch im Hintergrund weiterlaufen.

Ich habe mich dazu auf verschiedenen Blogs und Foren informiert bezüglich Background Mode "Fetch". Dieser lässt aber eine Ausführung nur für 30 weitere Sekunden zu, soweit ich die Informationen richtig verstanden habe.
Desweiteren habe ich mir verschieden Möglichkeiten angesehen, z.B. einen Background Task Manager. Dieser bringt auf den neuen iOS Versionen jedoch eine Zugriffsverletzung.
Dann habe ich noch folgendes dazu gefunden: Eine Audiodatei im Hintergrund abzuspielen, welche gestoppt wird, sobald die synchronisierung mit dem Datasnap Server fertig ist. Dies wird jedoch niemals durch die Prüfung bei Apple kommen. Außerdem klingt das nach einer völlig unsauberen "Lösung" des Problems.

Die Synchronisierung kann durchaus auch mal > 10 Minuten betragen, je nach Verbindungsqualität des mobilen Gerätes.

Ich hoffe Ihr habt Vorschläge bzw. wisst ob dies überhaupt möglich ist.

Mit freundlichen Grüßen
Nick.
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
309 Beiträge
 
Delphi 12 Athens
 
#2

AW: iOS App - TTask im Hintergrund

  Alt 27. Jun 2016, 11:55
Bei iOS musst Du Deiner App die Rechte geben, im Hintergrund weiter zu arbeiten. Nennt sich in den Einstellungen "Hintergrundaktualisierung". Diese muss für Deine App angeschaltet sein und Deine App sollte diese Rechte beim Benutzer anfordern, wenn sie nicht gesetzt sein.
Grüße, Christoph
  Mit Zitat antworten Zitat
NickD

Registriert seit: 10. Okt 2012
Ort: Burgsinn
53 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: iOS App - TTask im Hintergrund

  Alt 27. Jun 2016, 12:00
Diese Einstellung ist für die App getroffen worden, zwar Manuell über die Einstellungen ohne Aufforderung, jedoch sollte das ja keinen Unterschied machen oder?
Trotzdem wird der Task gestoppt, bis die App wieder in den Vordergrund kommt.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: iOS App - TTask im Hintergrund

  Alt 27. Jun 2016, 14:28
Wir haben bei uns in der App auch nur den Background-Fetch (max. 30 Sekunden Zeit) drin, was besseres haben wir leider nicht gefunden. Wir geben dann einfach eine Benachrichtigung aus, dass neue Daten vorhanden sind.

Wenn man richtige Hintergrund-Downloads will, muss man die systemeigenen Download-Routinen verwenden, wo ich aber erstens keinerlei Beispiele für Delphi gefunden habe und zweitens das für unsere App vermutlich eh nicht praktikabel wäre.

Falls die App beim Background-Fetch abstürzt, hast du entweder irgendwelche Aktualisierungen der GUI drin, oder wie in unserem Fall, du greifst auf Dateien zu. Im Hintergrund wird bei einem verschlüsselten iOS-Gerät der Zugriff auf Dateien ebenfalls gesperrt.

Geändert von bra (27. Jun 2016 um 14:30 Uhr)
  Mit Zitat antworten Zitat
NickD

Registriert seit: 10. Okt 2012
Ort: Burgsinn
53 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: iOS App - TTask im Hintergrund

  Alt 27. Jun 2016, 15:29
Ok. Danke schon mal für die Antworten.

Bei Android ist dies alles kein Problem, dort kann die App im Hintergrund zeitlich unbegrenzt Daten downloaden.
Wobei dies jetzt ab Android 6 auch nicht mehr ohne Weiteres möglich ist. (Doze Mode und App Standby Mode).

Dann werde ich wohl bei iOS auf vollständige Hintergrundaktualisierungen verzichten müssen.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz