Activity stoppen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von quiddix, 24.02.2010.

  1. quiddix, 24.02.2010 #1
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    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 ;)
     
  2. swordi, 24.02.2010 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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.
     
  3. quiddix, 24.02.2010 #3
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    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?
     
  4. Shinigami, 24.02.2010 #4
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    69
    Registriert seit:
    08.04.2009
    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
     
  5. swordi, 25.02.2010 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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
     
  6. quiddix, 25.02.2010 #6
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    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.
     
  7. swordi, 25.02.2010 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    sehr gut, wenns gelöst ist
     

Diese Seite empfehlen