Android App aus dem Speicher richtig beenden?

bruce85

Bekanntes Mitglied
Hallo,
ich habe folgendes Problem, und zwar habe ich in meiner App mehrere Activitys, wenn ich in meiner App eine andere Activity aufrufe und die App über den Home-Button verlasse und später irgendwann wieder öffne, dann stürzt meine App ab, da einige Variable von der ersten Activity verloren gegangen sind und diese nicht mehr verfügbar sind in der zuletzt geöffneten Activity.

z.B. habe ich ein Array in MenuActivity und diese verwende ich auch z.B. in GameActivity über MenuActivity.getArray... usw.
Wenn ich die App dann beispielsweise für eine Zeitlang verlasse über den Home-Button und später wieder öffne, dann wird die App beendet, da ich dann eine Null pointer Exception erhalte, da das Array nicht mehr verfügbar ist.

Ambesten wäre es, die App komplett zu beenden, wenn die App längere Zeit im Hintergrund war und die Variablen von der App aus dem speicher entfernt wurden.
Wie könnte ich das am einfachsten lösen?

Ich bedanke mich schonmal im Voraus.

Gruss
 

dzim

Top Contributor
dann musst du die #onPause Methode überschreiben und darin alles wegputzen, was nicht nötig ist. Mach dir eine Hilfsmethode, die das übernimmt und setze sie in #onPause und #onStop (oder wie die noch alle hiessen :) ) rein... So würde ich es erst mal angehen.
 

RelaX

Aktives Mitglied
Du könntest auch ein System.exit(0); verwenden. Da bleibt nichts übrig. Sollte man allerdings wirklich nur dann benutzen wenn es wirklich notwendig ist!
 

bruce85

Bekanntes Mitglied
Ich hab das jetzt anders gelößt und zwar so:
Ich benutze eine Variable start und diese weise ich den Wert 1 zu, sobald die App gestartet wird.
Wenn man die App dann über den Home-Button verlässt und später irgendwann wieder öffnen möchte, dann wird zuerst geprüft, ob diese Variable mit dem Wert 1 noch existiert, wenn nicht, dann werden alle geöffnete Activitys beendet, bis auf die StartAcivity.

Somit erhalte ich keinen Fehler mehr und funktioniert einwandfrei.

Trotzdem, vielen Dank für die antwort.

Gruss
 

RelaX

Aktives Mitglied
Wie hast du denn die Activities referenziert damit du diese beenden kannst?

Irgendwie kann ich nicht nachvollziehen was genau du bezwecken möchtest. Normalerweise ist es doch genau der Sinn das die Activities nicht vollkommen neu aufgebaut werden müssen.

Vielleicht solltest du deine Architektur nochmal dahingehend prüfen ob das wirklich sein muss. Ich bin der Meinung das solch ein Vorgehen wirklich äußerst selten erwünscht ist.

Ganz wichtig hierbei wäre zu erwähnen das du evt einfach die Daten mit einem Intent übergibst. Zum Beispiel.

Wenn du etwas mehr Informationen bereitstellst kann man sicher mehr dazu sagen!!!
 
Zuletzt bearbeitet:

bruce85

Bekanntes Mitglied
Es ist schon so OK wie ich es gemacht habe!

Also nochmal, wenn ich meine App starte und eine andere Activity in meiner App öffne und die App dann z.B. über den Home-Button verlasse und später meine App wieder starte, dann lasse ich einfach diese activity beenden, da ich sonst einen Fehler bekomme, da alle Variablen von der ersten Activity verloren sind und diese auch nicht mehr existieren, da ich in der 2ten Activity auch auf Variablen zugreife, diese in Activity1 vorhanden sind.

So wird halt alles wieder geladen in Activity1, man muss halt die andere Activity erneut starten und fertig.
 

coco07

Bekanntes Mitglied
Das hört sich aber nicht nach reiner Objektorientierung an. Deklarierst du deine Variablen als `public static` ?
Fakt ist, dass Android eine Activity kicken kann, wenn diese nicht mehr im Vordergrund ist und das System RAM benötigt. Lieber nochmal am Design pfeilen ;)

grüße coco07!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Android SharedPreferences wenn App auf externem Speicher klappt nicht Android & Cross-Platform Mobile Apps 0
L Auflisten aller verfügbaren Speicher Android & Cross-Platform Mobile Apps 3
W .txt File aus dem Speicher des Smartphone lesen Android & Cross-Platform Mobile Apps 15
K Dynamisches Menu saugt zuviel Speicher Android & Cross-Platform Mobile Apps 5
D Android System löscht benötigte Teile der App aus Speicher Android & Cross-Platform Mobile Apps 3
T Android Externen Speicher beschreiben Android & Cross-Platform Mobile Apps 3
M Android Android Programm mehr Speicher zuweisen Android & Cross-Platform Mobile Apps 4
M PythonInterpreter funktioniert nicht richtig NoClassDefFoundError Android & Cross-Platform Mobile Apps 1
W WebView Linkvertise lädt nicht richtig oder bleibt grau Android & Cross-Platform Mobile Apps 10
CT9288 Zufällige Zahlengenerierung scheint nicht richtig zu funktionieren Android & Cross-Platform Mobile Apps 5
J Input Dialog - ist das so richtig ? Android & Cross-Platform Mobile Apps 1
U Android Kalendertermine richtig positionieren in der Tagesansicht Android & Cross-Platform Mobile Apps 0
J Android SimpleDateFormat parser funktioniert nicht richtig? Android & Cross-Platform Mobile Apps 4
T x und y Werte richtig festlegen Android & Cross-Platform Mobile Apps 4
M Umlaute im Quellcode einer Website richtig darstellen Android & Cross-Platform Mobile Apps 4
J Handy bootet nicht mehr richtig Android & Cross-Platform Mobile Apps 2
S Android Wie richtig auf Threadstatus warten? Android & Cross-Platform Mobile Apps 12
Kidao Wie startet man ein Thread richtig? Android & Cross-Platform Mobile Apps 4
schlingel Android Warum man Apps beenden sollte bzw. es nicht tun sollte Android & Cross-Platform Mobile Apps 4
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
P Android Warum kann man App's nicht beenden? Android & Cross-Platform Mobile Apps 16
J Android Emulator Beenden Android & Cross-Platform Mobile Apps 4
G Activity beenden Android & Cross-Platform Mobile Apps 2
A Midlet bei Fehler elegant beenden mit Fehlermeldung Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Neue Themen


Oben