Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FTP Download hängt bei Android (https://www.delphipraxis.net/208623-ftp-download-haengt-bei-android.html)

skoschke 30. Aug 2021 09:31

FTP Download hängt bei Android
 
Hallo,

ich habe ein Phänomen, bei dem ich nicht weiterkomme:

Ich habe eine App, die von einem FTP eine Datei laden soll.
Für Windows compiliert läuft der Download fehlerfrei durch, gleicher Code auf Android läuft der Download bis ca. 70% und bleibt dann stehen.
Mehrfach Download gestartet, immer wieder hängt es bei 70%.
Die Datei ist ca. 23MB groß, Android 11.

Nehme ich eine andere Datei, die nur 12MB groß ist, läuft der Download auch bei Android durch!

Hat jemand eine Idee wo ich ansetzen könnte?

Danke
Ciao
Stefan

Rollo62 30. Aug 2021 11:33

AW: FTP Download hängt bei Android
 
Läuft der Download im Vordergrund, oder Hintergrund ?
Ich vermute mal dass das Phone einfach einschläft, und deshalb alle Aktionen stoppt.

philipp.hofmann 30. Aug 2021 12:25

AW: FTP Download hängt bei Android
 
Was ich bei Android auch habe (obwohl es im Hintergrund läuft und die App definitiv weiterläuft), ich kann den Fortschritt eines HTTP-Downloads nicht messen, dann stoppt es auch bei mir. Daher ist bei mir für Android OnReceiveData ausgeklammert. Ist gerade bei großen Dateien doof, dass man keinen Fortschritt anzeigt, aber besser als der Abbruch.

Delphi-Quellcode:
procedure initHTTPClient(HttpClient: TNetHTTPClient);
begin
  HttpClient.OnAuthEvent:=NetHTTPClientAuthEvent;
  {$IFNDEF ANDROID}
    HttpClient.OnReceiveData:=NetHTTPClientReceiveData;
  {$ENDIF}
  HttpClient.OnRequestError:=NetHTTPClientRequestError;
  HttpClient.ConnectionTimeout:=180000;
  HttpClient.ResponseTimeout:=1800000;

skoschke 1. Sep 2021 07:17

AW: FTP Download hängt bei Android
 
Zitat:

Zitat von Rollo62 (Beitrag 1493956)
Läuft der Download im Vordergrund, oder Hintergrund ?
Ich vermute mal dass das Phone einfach einschläft, und deshalb alle Aktionen stoppt.

Der Download läuft in einem Thread.
Ich habe einen Haltepunkt beim Debuggen auf NetHTTPRequest1RequestCompleted gesetzt, der wird nicht erreicht, vorher kommt eine Exception "Zu wenig Arbeitsspeicher"!

Im Handy sind 5 von 8 GB Arbeitsspeicher frei, im Speicher sind es 88 von 128 GB frei!

Wo kann ich ansetzen?

Ciao
Stefan

Rollo62 1. Sep 2021 12:30

AW: FTP Download hängt bei Android
 
So geht das wohl nur im Vordergrund, wenn die App einschläft kann die ganze App angehalten oder rausgeworfen werden.
Im Hintergrund laufen weder thread noch Timer, sonder nur bestimmte, erlaubte Aktionen mit spezieller Freigabe.
Deshalb die Frage, Vordergrund geht einigermaßen problemlos, im Hintergrund wird fast Alles geblockt,
und man muss sich mit Services und anderen Dingen auseinandersetzen.

mkinzler 1. Sep 2021 12:43

AW: FTP Download hängt bei Android
 
Funktioniert nur mit einem gekoppelten Service

https://github.com/Embarcadero/RADSt...oadServiceDemo

skoschke 2. Sep 2021 07:43

AW: FTP Download hängt bei Android
 
Zitat:

Zitat von mkinzler (Beitrag 1494024)
Funktioniert nur mit einem gekoppelten Service

https://github.com/Embarcadero/RADSt...oadServiceDemo

Schade, wenn ich das richtig sehe, ist das C - Code, den ich nicht auf Delphi umsetzen kann...

Ciao
Stefan

mkinzler 2. Sep 2021 07:45

AW: FTP Download hängt bei Android
 
Nein. Ist Delphi.

skoschke 2. Sep 2021 08:41

AW: FTP Download hängt bei Android
 
Das Demo DownloadImage ist Delphi, aber unter Delphi 10.4.2 nicht verwendbar.
Zusätzlich scheint es nur für Android zu funktionieren, ich brauche aber etwas was unter Windows und Android funktioniert!

Mein bestehender Code hat ja jahrelang funktioniert, nur jetzt bei Delphi 10.4.2 kommt es zu dem Abbruch, der auf dem Laufzeitfehler "zu wenig Arbeitsspeicher" resultiert.
Und der tritt nur bei einem 23MB Download auf, 13MB funktionieren...

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 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