AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi versehentliches Beenden einer Android App
Thema durchsuchen
Ansicht
Themen-Optionen

versehentliches Beenden einer Android App

Ein Thema von pollo · begonnen am 26. Feb 2024 · letzter Beitrag vom 29. Feb 2024
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von pollo
pollo

Registriert seit: 28. Dez 2012
Ort: Werneck
3 Beiträge
 
FreePascal / Lazarus
 
#1

versehentliches Beenden einer Android App

  Alt 26. Feb 2024, 19:07
Hallo an das Delphi-Praxis Forum,

nun besuche ich schon seit über 10 Jahren diese Platform, und konnte immer wieder mit Hilfe Eurer Beiträge meine Programmierer-Probleme lösen. Dafür zunächst meinen herzlichen Dank !!
Nun bin ich an einem Punkt, wo ich - nach vielen Recherchen in alle Richtungen - nicht weiterkomme. Und deshalb frage ich Euch aktiv um Rat. Ich poste hier zum allerersten Mal, deshalb habt bitte Nachsicht, falls ich irgendwelche Regeln - unwissentlich - missachten sollte

Das Problem lässt sich mit wenigen Sätzen beschreiben - ohne Beispielcode oder Tech-Talk: Ich entwickle eine Android-App unter RAD Studio 12.0 Architekt, und das funktionert auch mittlerweile ganz gut. Nun habe ich bei meinen Tests festgestellt, dass - sobald ich mein Test-Smartphone (ein ausrangiertes Samsung Galaxy S5 mit Android 6.0) in die Hand nehme und versehentlich auf die Taste rechts neben dem Home-Button "latsche", die App beendet wird. Ohne Rückfrage. Nach dem Neustart der App sind natürlich alle zuvor getätigten Aktionen verschwunden...

Ich möchte gerne diese Taste - ich glaube sie nennt sich "Zurück-Taste" (aber selbst an diese Info kommt man nur schwer 'ran) - deaktiveren und habe sowohl in meiner IDE, als auch auf dem Smartphone nach allen erdenklichen Möglichkeiten gesucht, leider vergeblich.

Wer kann mir hier weiterhelfen?

Vielen lieben Dank!

Pollo
Gerd
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: versehentliches Beenden einer Android App

  Alt 27. Feb 2024, 06:53
Du musst auf dem Form die Methode FormKeyUp implementieren und eine Action hinter vkBack legen.
Bei mir ist es unter Windows, dass bei der Escape-Taste der Voll-Bildmodus beendet wird
und unter Android geprüft wird, ob die virtuelle Tastatur heruntergefahren wird:

Delphi-Quellcode:
procedure TicTrainerF.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  if (inFullscreenMode and (key=vkEscape)) then
  begin
    menuItemList.resetFullScreen();
    exit;
  end;
  {$IFDEF ANDROID}
  if Key = vkHardwareBack then
  begin
    if ((pQuestion.Visible and eQuestion.Visible) or ((TabControl.Visible) and
        ((tabControl.activeTab=tiBrowser) or (tabControl.activeTab=tiVideoChat) or (tabControl.activeTab=tiConnections)))) then
    begin
      if (keyboardService <> nil) then
        keyboardService.HideVirtualKeyboard;
    end else begin
      showPanel(pWizard);
      tiWizardClick(Sender);
      if (menuItemList<>nil) then
        menuItemList.checkForShowAction(false);
    end;
    Key:=0;
  end;
  {$ENDIF}
end;
  Mit Zitat antworten Zitat
Benutzerbild von pollo
pollo

Registriert seit: 28. Dez 2012
Ort: Werneck
3 Beiträge
 
FreePascal / Lazarus
 
#3

AW: versehentliches Beenden einer Android App

  Alt 27. Feb 2024, 08:27
Hallo Philipp,

das klingt nach einem plausiblen Ansatz. Zunächst mal vielen herzlichen Dank!

Bevor ich dies in die Tat umsetzen kann, muss ich mich wohl noch in die Materie "VirtualKeyboard" einarbeiten. Momentan stolpert mein Compiler noch über einige Bezeichner in Deinem Quellcode

Habe bereits ein brauchbares Embarcadero Dokument zu diesem Thema gefunden, das probiere ich gleich heute Abend aus...
Gerd
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#4

AW: versehentliches Beenden einer Android App

  Alt 27. Feb 2024, 09:45
(ein ausrangiertes Samsung Galaxy S5 mit Android 6.0)
Ich will ja kein Spielverderber sein, aber offiziell wird Android 6 wohl nicht mehr unterstützt.
http://docwiki.embarcadero.com/Platf...s/en/Main_Page
Aber es funktioniert doch meist weit zurück, kommt im Einzelfall wohl auf die Funktionen an, welche Du nutzen willst.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: versehentliches Beenden einer Android App

  Alt 27. Feb 2024, 09:53
Mein Quellcode war ja nur ein Beispiel. Du kannst ja selbst entscheiden, was du bei dem Back-Klick machen möchtest.
Bei mir ist es eben so, dass ich schaue, ob die virtuelle Tastatur offen ist und diese dann schließe.
Falls dies nicht der Fall ist, springe ich auf andere Dialog in der App.
  Mit Zitat antworten Zitat
Benutzerbild von pollo
pollo

Registriert seit: 28. Dez 2012
Ort: Werneck
3 Beiträge
 
FreePascal / Lazarus
 
#6

AW: versehentliches Beenden einer Android App

  Alt 28. Feb 2024, 08:28
So Ihr Lieben,

das klappt also wunderbar!

Ich teste ab sofort mit einem Android 11 Smartphone. Danke an Rollo62 für den Tipp!

Und nochmals danke an Philipp für den entscheidenden Hinweis!
Gerd
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#7

AW: versehentliches Beenden einer Android App

  Alt 28. Feb 2024, 08:34
Funktioniert OnCloseQuery im Android nicht?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: versehentliches Beenden einer Android App

  Alt 28. Feb 2024, 14:20
Es gibt in Android- und iOS-App ja kein normales Close, was ich also Nutzer in der App aufrufen kann. Ich kann nur die App von außen schließen und dies kann man auch über die App nicht verhindern. OnCloseQuery ist ja dazu da, dass Beenden im Zweifelfall zu verhindern, um noch eine Frage zu stellen oder was auch immer. Verhindern geht unter Android nicht, wenn der Nutzer die App wegschiebt, schiebt er sie weg.

Wenn die App beim Klick auf den Back-Button auch crasht, macht sie an der Stelle etwas anderes, was so jetzt in geordnete Bahnen umgelenkt wurde.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#9

AW: versehentliches Beenden einer Android App

  Alt 28. Feb 2024, 15:44
Ja, Wegschieben ala "wie im Windows quasi per Taskmanager schließen/abschießen",

doch hier ging es um das Schließen über den "Zurück"-Knopf und da steuert "eigentlich" Delphi die Aktion,
drum hätte ich gedacht, dass es hier dann auch über's OnClose/OnCloseQuery läuft.

Bzw. in der VCL wird OnCloseQuery auch nur beim Close aufgerufen, aber nicht wenn man direkt Free/Release oder Application.Terminate auslöst.



Ich kenn aber auch so schon mehrere Programme, wo das "Zurück" nicht immer funktioniert (auch nicht Delphi).
Dort wird bei zurück normal erstmal die aktuelle Aktion beendet (Menüfenster geschlossen) und wenn bereits im Hauptfenster, dann kommt eine "Programm beenden?"-Frage,
aber oftmals macht der Knopf einfach garnichts. (Handy neu starten und danach vielleicht wieder)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Feb 2024 um 15:49 Uhr)
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: versehentliches Beenden einer Android App

  Alt 28. Feb 2024, 21:48
Bei FMX wird unter Windows bei einem Terminate von außen auch die OnCloseQuery aufgerufen, aber trotzdem wird die App dann beendet, sprich eine Rückfrage sieht man an der Stelle nur noch, kann sie aber nicht mehr beantworten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 19:49 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