![]() |
[Android] App im Hintergrund arbeiten lassen
Hallo,
ich versuche gerade verzweifelt mit meiner App im Hintergrund Daten von einem Server abragen zu lassen und ggf. eine Push-Notification auszulösen. Versucht hab ich das schon mit Timern und Threads aber sobald die App "minimiert" wird (z.B. durch einen Klick auf den Home-Button) läuft da nichts mehr weiter... Wie macht man das normalerweise und zuverlässig und möglichst Akku sparend? Freundliche Grüsse |
AW: [Android] App im Hintergrund arbeiten lassen
Ich habe das mit TTask.Run() gelöst.
Dazu muss die Unit System.Threading eingebunden werden. Funktioniert ohne Probleme. |
AW: [Android] App im Hintergrund arbeiten lassen
Kann es sein, dass man dafür Android-Services braucht?
|
AW: [Android] App im Hintergrund arbeiten lassen
In meinem Fall hole ich Daten von einem Datasnap Server. Dies wird mit TTask auch weiterhin ausgeführt,
wenn die App in den Hintergrund gelegt wird oder das Display gesperrt wird. Habe bisher keinen Android Service benötigt. Der Service hat natürlich den Vorteil, auch bei geschlossener App weiter arbeiten zu können. |
AW: [Android] App im Hintergrund arbeiten lassen
Wow nach dem ganzen rumgefuchtel hätte ich nicht gedacht das ein einfaches TTask mir da Abhilfe schafft, vielen dank! Werde ich nun in Zukunft öfters brauchen :)
Die Services werd ich mir auch mal ansehen, klingt nützlich. Danke und schönen Abend noch :) Freundliche Grüsse |
AW: [Android] App im Hintergrund arbeiten lassen
Ich habe zwar momentan keinen Bedarf auf iOS/Android etwas im Hintergrund zu machen, möchte es aber trotzdem wissen: Funktioniert das nur zufällig oder ist das der "richtige" Weg noch im Hintergrund nach Beenden/"Suspenden" der App etwas zu erledigen? Ich hätte gedacht dass das OS der APP direkt jegliche Rechenzeit entzieht. Ich hätte erwartet dass das OS irgendwelche "Hintergrund"-Mechanismen bereitstellt.
Nicht dass sich in zwei Versionen etwas an der Implementierung (Delphi oder iOS/Android) ändert und dann wieder alle Zeter und Mordio schreien. |
AW: [Android] App im Hintergrund arbeiten lassen
Zitat:
Freundliche Grüsse |
AW: [Android] App im Hintergrund arbeiten lassen
Das funktioniert aber auch nur, solange die App nicht wirklich beendet wird (was unter Android möglich ist). Unter iOS läuft die App eigentlich immer, außer man schießt sie explizit ab.
|
AW: [Android] App im Hintergrund arbeiten lassen
Hat sich das derart verändert? Ich hatte das als schlichter Nutzer unter iOS eigentlich umgekehrt in Erinnerung. Damit habe ich mir dann auch erklärt dass man eigentlich immer nur Android-Nutzer über Akku-Probleme klagen hört, von iOS oder Windows hingegen nie (denn dort ist die Anwendung eigentlich direkt aus wenn nicht mehr sichtbar).
|
AW: [Android] App im Hintergrund arbeiten lassen
Hier was aktuelles zu apple iOS
![]() Und noch ganz frisch ![]() |
AW: [Android] App im Hintergrund arbeiten lassen
Beim iOS ist es so, dass der TTask etwa 10 Sekunden weiter läuft nachdem die App in den Hintergrund kommt. Danach stoppt dieser.
Es sei denn man verwendet den background fetch der erhöht die Zeit auf 30 Sekunden. Dann gibt es da noch die "Ausnahmen" wie z.B. Musik-Apps oder Navigations-Apps. Solange zum Beispiel ein Lied gespielt wird, bleibt die App auch im Hintergrund aktiv. Unter iOS habe ich bisher keine Möglichkeit gefunden meine Tasks mehr als 10 Sekunden im Hintergrund laufen zu lassen. Ziemlich stressig wenn man unter Android und iOS die selben "Features" anbieten möchte aber eines der beiden OS es unterbindet. |
AW: [Android] App im Hintergrund arbeiten lassen
Das liegt eben an iOS, dort sollen im Hintergrund nur geringe Mengen an Daten ausgetauscht werden.
Zudem will iOS die Kontrolle haben um mehrere Anwendungen - die auch im Hintergrund Daten haben wollen - besser zu steuern, wann diese ihren 30 Sekunden Zeitraum erhalten. Ist sicher aufwändiger in der Programmierung aber besser für den Anwender |
AW: [Android] App im Hintergrund arbeiten lassen
Meine Frage ist nur: Woher kommen diese "10 Sekunden"? Wer sagt dass es in der nächsten iOS-Version nicht auf 05 Sekunden reduziert wird soweit der Anwender nicht explizit ein "Kein Super-Stromsparmodus" für diese Anwendung aktiviert hat?
|
AW: [Android] App im Hintergrund arbeiten lassen
Zitat:
Zitat:
Das viel größere Problem bei iOS ist, dass man bei neueren OS-Versionen und gesperrten und verschlüsseltem Gerät auch nicht mehr auf Dateien zugreifen kann, was in unserer App mit Datenbank die Hintergrund-Sync wieder nutzlos macht. Sprich, bei verschlüsseltem+gesperrten Gerät funktioniert das auch nicht mehr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz