Activity richtig beenden, onDestroy()

  • Antworten:3
  • Bentwortet
Duckemai
  • Forum-Beiträge: 63

03.11.2010, 12:11:19 via Website

Hallo zusammen,

ich habe ein App geschrieben, über das dem User mittels Menü und eines 2tes Activity (Preference) eine Listenauswahl gezeigt wird. Nun möchte ich dem User ersparen, nach der Auswahl, die Rücktaste drücken zu müssen. Dies soll automatisch geschehen.

Dafür habe ich in der onCreate der Preference wieder die Hauptactivity aufgerufen:

public void onCreate(Bundle savedInstanceState) {
...
customPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference Preferences,
Object customPref) {
Intent i = new Intent(Preferences.this, Hauptaktivity.class);
startActivity(i);
return true;
...
}

Das klappt auch. Aber natürlich wird die Preference nicht ordungsgemäß beendet. Wie baut man die onDestroy() hier richtig ein?

this.onDestroy() klappt nicht.

Wenn ich sie anschließend überschreibe mit:
@Override protected void onDestroy() {
super.onDestroy();
}
erfolgt kein Aufruf der Methode, da er vorher rausgeht.

Hat jemand einen praktischen Rat für mich, wie sowas geht
oder ein Code-Bsp. um das mal zu sehen?

Vielen Dank
Duckemai

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

03.11.2010, 12:28:07 via Website

Hallo Duckemai,

wenn ich es richtig verstanden habe was Du meinst, dann sollte die Antwort auf Deine Fragen hier aufgeführt sein:

ClearStack bei developer.android.com

War es das was Du meintest ?

lg Voss

Duckemai

Antworten
Jack-In-Da-Box
  • Forum-Beiträge: 1.569

03.11.2010, 13:18:44 via Website

warum rufst du nach der listenauswahl in der 2. activity (preference) nicht den befehl finish() auf?
dann solltest du automatisch zur aufrufenden (1. activity) zurückkehren...

Duckemai

Antworten
Duckemai
  • Forum-Beiträge: 63

03.11.2010, 16:54:53 via Website

@Jack-In-Da-Box:
Das habe ich gemacht. Konnte dann aber das App nicht richtig beenden, weil die Instanz noch lief. Ich hatte nämlich immer noch mein:

Intent i = new Intent(Hauptactivity.this, Preferences.class);
startActivity(i);

aufgerufen.

Das es einfach NUR mit finish() funktioniert, war mir gar nicht bewusst. Aber so klappt es. Super, besten Dank!

@Jörg:
Habe Deinen Lösungsansatz versucht. Aber wenn ich das in die Manifest eintrage,
dann hatte es überhaupt keine Auswirkungen. Zumindest keine, die mir aufgefallen sind. Aber mit finish() geht es ja nun.
Dass ich über ein simples finish stolpern würde, damit hattest Du bestimmt nicht gerechnet >_>

Danke an alle,
Duckemai

Antworten