Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi FMX App Crash TControl.repaint; (https://www.delphipraxis.net/208052-fmx-app-crash-tcontrol-repaint%3B.html)

stalkingwolf 2. Jun 2021 09:48


FMX App Crash TControl.repaint;
 
Liste der Anhänge anzeigen (Anzahl: 1)
Folgendes Verhalten meiner Android APP.

Wenn ich die APP über die unteren Navigationsbuttons von Android mit Zurück (ganz rechts ) minimiere und dann erneut nach vorne bringe, dann stürzt mir die APP in procedure TControl.Repaint; bei if TCanvasStyle.SupportClipRects in Canvas.GetCanvasStyle then mit Signal 11 ab und Android startet die APP neu.
Die Einträge im Thread davor sind setFont usw.
Zumindestens zeigt mir das der Debugger an. Ob auf Android 8 oder 11 ist dabei egal. SDK 25.2.5.

Wenn ich die APP allerdings über den mittleren Android Button nach hinten schicke und dann erneut nach vorne rufe stürzt die APP nicht ab.
Frag mich auch was hier der Unterschied im Verhalten ist.
Ich habe die Ereignisse wie onActivate onShow onResize usw mal mit Logs versehen. Keins wird getriggert.

Edit : Bild vom Stack hinzugefügt

Edit2 : Ich sehe das dies bei dem AccessCameraAPP Beispiel von Delphi auch passiert.

stalkingwolf 2. Jun 2021 15:44

AW: FMX App Crash TControl.repaint;
 
Ich sehe das bei dem Back Button in Android in dem Delphi APP die Mainform geschlossen wird.

aber ist es nicht so das in Delphi das schließen der Mainform auch das beenden des Programmes ist?

Jedes Test APP aus Delphi verhält sich gleich.
Nach dem Back Button und erneuten Aufrufen aus der App Liste in Android zeigt wieder Splashscreen = Neustart der APP an.
Andere APPs verhalten sich nicht so.

ich habe nun mit action := TCloseAction.caNone; im Formclose verhindert.

ich sehe hier wurde das ganze auch mal diskutiert.
https://www.delphipraxis.net/193413-...ackbutton.html

Rollo62 2. Jun 2021 18:48

AW: FMX App Crash TControl.repaint;
 
Zitat:

Zitat von stalkingwolf (Beitrag 1490565)
aber ist es nicht so das in Delphi das schließen der Mainform auch das beenden des Programmes ist?

Mobile Apps funktionieren anders, die kann man normalerweise gar nicht per Programm Beenden.
Grund dafür könnte sein dass das OS dann gar nicht genau weiss wohin es switchen soll, denn da können
allerhand Dinge zwischendurch passieren ( Telefonanruf, SMS, etc. ).

Du könntest aber den vkHardwareBack abfangen, und dann z.B. den Homescreen öffnen.
Vielleicht sowas in der Art:
https://stackoverflow.com/questions/...-app-on-delphi

stalkingwolf 4. Jun 2021 08:36

AW: FMX App Crash TControl.repaint;
 
Zitat:

Zitat von Rollo62 (Beitrag 1490571)
Zitat:

Zitat von stalkingwolf (Beitrag 1490565)
aber ist es nicht so das in Delphi das schließen der Mainform auch das beenden des Programmes ist?

Mobile Apps funktionieren anders, die kann man normalerweise gar nicht per Programm Beenden.

Ja das klar. Aber das formclose wird von Delphi getriggert nicht von mir wenn der Backbutton gedrückt wird.
Der Stackoverflow Thread geht ja auch genau darum. IMO ist das verhalten von Delphi hier falsch.

Aber meine Lösung funktioniert. Ist nur etwas grob.

Rollo62 5. Jun 2021 09:05

AW: FMX App Crash TControl.repaint;
 
Vielleicht hilft Dir das hier.
https://stackoverflow.com/questions/...ogrammatically
finishAffinity(); scheint bei Android dafür vorgesehen zu sein, das sehe ich zumindest in verschiedenen Threads,
es gibt da aber zig Wege.
Hier in den offiziellen Docs wird aber auch auf ein exit(0); (REASON_EXIT_SELF) hingewiesen, was anscheinend auch OK ist.
https://developer.android.com/refere...cationExitInfo

aber wie gesagt, auch mit dem Hinweis:
Zitat:

Applications should normally not do this, as the system has a better knowledge in terms of process management.

Harry Stahl 5. Jun 2021 21:55

AW: FMX App Crash TControl.repaint;
 
Ist das eine ganz neue App oder hast Du die von einer vorherigen Delphi-Version übernommen?

Habe schon erlebt, dass alte Style-Files aus vorherigen Versionen unerklärliche Probleme machen...

stalkingwolf 7. Jun 2021 08:20

AW: FMX App Crash TControl.repaint;
 
kommt aus 10.1. Dort wurde das Projekt damals erstellt und nun von 10.1 auf 10.4 wegen dem neuen SDK "portiert".
Ich meine das ganze hat mir ja schon bei der Kamera in die Suppe gespuckt.


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