Verhalten meiner App beim Schließen

  • Antworten:10
Thorsten Bergmann
  • Forum-Beiträge: 4

15.05.2015, 11:59:46 via Website

Hallo liebe Anroidpit Gemeinde,

ich bin kein sehr erfahrener Programmierer, habe es aber geschafft eine lauffähige App zu erstellen, die aus mehreren Activities besteht. Da ich jetzt endlich auch ein Android Handy besitze, konnte ich die App am Gerät und nicht nur über den Emulator testen.

Generell funktioniert sie auch. Bei der App werden Eingaben während eines Spiels gemacht, also sowas wie eine Statistik erstellt

Wenn ich die App schließe (z.B. über den Home-Button) und die App direkt danach wieder öffne, bin ich in der gleichen Activity und die Eingabewerte sind noch genau an der gleichen Stelle wie vorher, also alles gut. Wenn ich aber etwas warte und auch der Bildschirm ganz ausgeht, springt die App in die erste Activity und alle Einträge sind weg. Für die konkrete Anwendung der App ist dieses Verhalten leider schlecht. Wenn das Spiel in der Halbzeit ist und der Anwender in der 2. Halbzeit weiter die Statistik führen möchte, sind die Eingaben aus der ersten Halbzeit weg.

Kann ich die App irgendwie weiterlaufen lassen, dass die Eingabewerte erhalten bleiben?

Danke!

— geändert am 15.05.2015, 12:01:13

Antworten
Ju Ku
  • Forum-Beiträge: 72

15.05.2015, 16:37:30 via Website

Android ruft die Methode onPause() in deiner Activity auf, wenn diese weiterhin geöffnet bleibt und onResume(), wenn die Activity dann wieder angezeigt wird.
Falls die Activity geschlossen wird, wird die Methode onDestroy() aufgerufen, welche du ebenfalls überschreiben kannst und falls die App geöffnet wird onCreate().
Du könntest also diese Methoden nutzen, um deine Daten zu speichern.

— geändert am 15.05.2015, 16:37:54

Antworten
Lucas
  • Forum-Beiträge: 717

16.05.2015, 08:59:18 via App

Nicht zu vergessen:
onStop()
und
onStart()
Was in deinem Fall wohl wichtiger wäre.

— geändert am 16.05.2015, 09:01:30

Antworten
Thorsten Bergmann
  • Forum-Beiträge: 4

16.05.2015, 10:36:21 via Website

Super, danke schon mal für die Hinweise. Werde mit das anschauen und das hoffentlich hinkriegen.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

16.05.2015, 23:50:12 via Website

In onStop() würde ich nichts "wichtiges" machen, weil diese Methode nicht garantiert aufgerufen wird, wenn das System die App beendet, um z.B. schnell Speicher freizugeben.
Die letzte Methode, die garantiert aufgerufen wird, ist onPause().

Der richtige Weg ist aber dennoch den aktuellen Zustand der App in onSaveInstanceState(Bundle bundle) zu speichern, aber das steht im Link von Lucas ja ganz genau beschrieben.

Antworten
Thorsten Bergmann
  • Forum-Beiträge: 4

28.05.2015, 11:53:01 via Website

Ich habe jetzt einfach die "leeren" Methoden onSaveInstanceState und onRestoreInstanceState verwendet. Also ohne spezielle EInträge von mir. In einem ersten Test hat aber alles prima funktioniert. Werde es nochmal ein bisschen testen...

VIelen Dnak für die guten und schnellen Antworten!

Antworten
Thorsten Bergmann
  • Forum-Beiträge: 4

28.05.2015, 12:34:07 via Website

Ja, genau. Das ist im Prinzip das einzige, was in den Methoden drinsteht.

Danke!

Antworten
Sven R.
  • Forum-Beiträge: 1.904

29.05.2015, 14:15:40 via App

Der LogCat ist jetzt das wichtigste! Also poste den Fehler mal bitte.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten