Activity stoppen

Q

quiddix

Ambitioniertes Mitglied
1
Hallo,

ich habe ein Problem, das ihr wohl relativ schnell beantworten könnt. Leider habe ich keinen ähnlichen Beitrage gefunden, weshalb ich ein neues Thema erstellt habe.

Ich habe eine Applikation die wie gewohlt mit der Start-Activity startet.
Im Optionsmenü habe ich eine Option "beenden", bei der ich finish() ausführe.

Danach schließt sich die Applikation.

Durch Buttons auf der Startseite öffnet sich eine andere Activity. Führe ich in dieser neuen Activity finish() aus, so komme ich zur (im Hintergrund weitergelaufenen) Startactivity zurück.

Ich erkläre mir das so, dass finish() die aktuelle Activity stoppt und somit noch laufende Activities aus dem Standbymodus resumed.

Ich will nun folgende Activities in meiner Anwendung durchlaufen können.

Startseite -> Produkt festlegen -> Produkt festlegen 2 -> Startseite

Wenn ich nun im Schritt Produkt festlegen 2 auf "Abbrechen" im Optionsmenü drücke, soll direkt die Startseite angezeigt werden.

Frage:
- mache ich das mit 2x aufrufen von finish() (denke nicht wäre ja "unschön")
- welche andere Möglichkeiten gibt es?
- Wenn "Produkt festlegen 2" erfolgreich abgeschlossen wurde soll sowohl die Activite "Produkt festlegen" als auch "Produkt festlegen 2 " geschlossen werden. Wie mache ich das?

Danke an die fleißigen Tipper ;)
 
hmm
ich würde schon sagen 2x finish

wenn du "produkt festlegen" und "..2" über die startactivity legst, solltest du auch wieder beide zurückgehen.
 
Ok nun ist mir doch noch ein Problemfall eingefallen.
Da ich die Activity einmal zum Hinzufügen von neuen Produkten und zum anderen für das Bearbeiten von existierenden Produkten benutzten will habe ich ein Problem.

Szenario1 (Hinzufügen):
Startseite -> Produktdetails 1 -> Produtkdetails 2 -> Startseite

Szenario2 (Bearbeiten):
Beim Bearbeiten dürfen nur Elemente aus Produktdetails 2 geändert werden deshalb ist der Ablauf hier anders.
Startseite -> Produktdetails 2 -> Startseite

Würde ich nun auf Produktdetails 2, doppelt finish() ausführen würde ich beim Szenario2 aus der Applikation fliegen.

Gibt es hierfür eine best-practice Methode?
 
Hi,

spricht was dagegen einfach wieder zurück zur Startseite zu navigieren und deine Activities dem Framework zu überlassen? Die werden doch "weggeräumt", wenn Resourcen knapp werden.

Gruß,
Shini
 
hallo

ich sehe da kein problem

du machst es vielleicht einfach so:

bei startactivity machst du ein
startactivity()

dann bei details1 machst du
startactivityForResult

wenn du nun detail2 mit finish beendest machst vorher einfach setResult(xx)

bei details1 machst du
onActivityResult()
und wenn result == xx dann weiter mit finish() und beendest auch detail1

und schon bist wieder bei der startactivity

so wie du es eben brauchst

hoffe das ist einigermaßen verständlich
 
Hi swordi,

genau die gleiche Idee hatte ich heute während der Zugfahrt, als ich in meinem Androidbuch gelesen habe.

Ich denke diese Möglichkeit ist vielversprechend, vorallem verknüpft sie die Activities sinnvoll, sodass ich bei detail2 z.B. ein Result(0) für abbrechen (dann ruft auch detail1 finish auf) bzw. ein Result(1) für zurück (detail2 machts nichts).

Meine Frage ist deshalb hiermit geklärt. Danke an alle.
 
sehr gut, wenns gelöst ist
 

Ähnliche Themen

M
  • maksimilian
Antworten
15
Aufrufe
1.700
maksimilian
M
M
Antworten
8
Aufrufe
954
deek
D
M
  • maksimilian
Antworten
5
Aufrufe
858
maksimilian
M
Zurück
Oben Unten