Wie programmiere ich das Ende einer App richtig?

  • Antworten:8
Andreas Engel
  • Forum-Beiträge: 14

18.05.2011, 12:04:41 via Website

Hallo,

ich bin ganz neu in der Android Programmierung.
Ich habe eine App geschrieben, die soweit auch schon recht gut funktioniert.

Wenn ich die App allerdings beende, bleibt sie unter

Einstellungen -> Telefoninfo -> Akku -> Akkuverbrauch

immer noch sichtbar.

Deshalb meine Frage:
Wie muss ich das App-Ende richtig programmieren, damit die App auch aus der Akkuverbrauch-Ansicht verschwindet?

Vielen Dank

Andreas

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

18.05.2011, 12:20:31 via App

Hallo,
das sollte Android selbst regeln.
Wenn du es aber über einen Button oder über ein Menü machst kannst du auch
1System.exit(0);
machen

Gruß Alexander

Antworten
Frank W.
  • Forum-Beiträge: 5.103

18.05.2011, 12:28:34 via Website

Andreas Engel
Wenn ich die App allerdings beende, bleibt sie unter

Einstellungen -> Telefoninfo -> Akku -> Akkuverbrauch

immer noch sichtbar.

Hallo Andreas! Erstmal Herzlich Willkommen bei AndroidPIT!! :lol:

Dass du die App dort weiterhin siehst, ist ganz normal. Da wird dir auch "nur" der Akkuverbrauch seit letztem Einschalten angezeigt. Das kann auch eine App sein, die vor 5 Tagen schon geschlossen wurde, wenn du seitdem nicht wieder neu gebootet hast.

Frank

"Irgendwann, möglicherweise aber auch nie, werde ich dich bitten, mir eine kleine Gefälligkeit zu erweisen." (Don Corleone) Für ein friedliches Miteinander"

Antworten
Andreas Engel
  • Forum-Beiträge: 14

18.05.2011, 15:04:42 via Website

Frank W.
...Dass du die App dort weiterhin siehst, ist ganz normal. Da wird dir auch "nur" der Akkuverbrauch seit letztem Einschalten angezeigt. Das kann auch eine App sein, die vor 5 Tagen schon geschlossen wurde, wenn du seitdem nicht wieder neu gebootet hast....

Frank

Hmm, okay, aber warum sehe ich dann die anderen Apps nicht, die gelaufen sind ?

Antworten
Andreas Engel
  • Forum-Beiträge: 14

18.05.2011, 15:16:10 via Website

Rafael K.
...Was macht deine App denn?

https://sourceforge.net/projects/droidcachebox/

Das ist (bzw. wird) eine App zum Geocachen.

Danke für Eure Hilfe
Andreas

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

18.05.2011, 15:35:49 via Website

wenn deine app im hintergrund noch nicht ganz " tot" ist, braucht sie nicht wirklich strom.

außer natürlich du hast services gestartet und diese laufen noch weiter. das könnte natürlich sehr viel strom saugen.

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

18.05.2011, 18:49:32 via Website

Implementiere in Deiner App mal folgende Methoden komplett mit ein ... dann kannst Du im Logcat wunderbar verfolgen was Deine App wann, wie macht.


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

} // Ende onCreate

@Override
public void onStart() {
super.onStart();
Log.d(DEBUG_TAG, "im onStart, registering receiver, initialising UI now");
//inside here you can register receivers and initialise UI
}

@Override
public void onRestart() {
super.onRestart();
Log.d(DEBUG_TAG, "Im onResume... ");
}

@Override
public void onResume() {
super.onResume();
Log.d(DEBUG_TAG, "Im onRestart... ");
}

@Override
public void onPause() {
super.onPause();
/* do nothing for now
* Maybe of use in later release
* f.e. persisting changes for later use
*/
Log.d(DEBUG_TAG, "Im onPause... ");
}

@Override
public void onStop() {
super.onStop();
Log.d(DEBUG_TAG, "Im onStop,... ");
//Here all Boradcastreceivers and listeners should be stopped


//finish();
//System.exit(0); // This one only with a strong reason
}

@Override
public void onDestroy() {
super.onDestroy();
Log.d(DEBUG_TAG, "Im onDestroy... ");

//finish();
//System.exit(0);
}


Dort findest Du auch erklärt was genau die einzelnen Methoden tun.

Das System.exit(0) was ich dort auskommentiert hingeschrieben habe ist ein Notnagel für Zeiten wo Du die App wirklich ratzeputz aus dem Speicher entfernt haben möchtest. Allerdings ist das nur in wenigen Fällen wirklich notwendig und eine sehr radikale Methode, da Du hier am Betriebsystem vorbei arbeitest und der Applikation die Virtuell Machine unter dem Hintern wegziehst. Danach besteht wirklich keine Chance mehr auf irgendwas ...
Das ganze folgt dem hier gezeigten Diagramm des Life Cycles einer Activity.

— geändert am 21.05.2011, 10:09:39

lg Voss

Antworten
Gelöschter Account
  • Forum-Beiträge: 281

18.05.2011, 20:06:09 via Website

Wenn du was mit GPS machst, dann pass auf, das du alle LocationListener, die du erzeugst und registrierst, auch wirklich wieder de-registrierst !

Antworten