2016-12-28 5 views
-1

Ich habe drei Aktivitäten A, B und C. Wenn ich eine Taste in Aktivität A drücke, startet Aktivität B und wenn ich eine Taste in Aktivität B drücke, startet Aktivität C. bis hierher Es gibt kein Problem.Zurück zur vorherigen Aktivität

, aber wenn ich die Zurück-Taste auf Aktivität C drücken soll es gibt mir nach B zurück, aber was konnte wie folgt beschrieben werden passiert:

1st time B starts C, then C goes back to B 
2nd time B starts C, then C goes back to B 
3rd time B starts C, then C goes back to B 
4th time B starts C, then C goes back to B 

und so weiter,

jetzt, wenn ich drücke die Zurück-Taste auf B, es sollte mich zurück zu A führen, aber was passiert, wenn ich die Zurück-Taste auf B drücke, kehrt ich immer wieder zu B zurück, wenn B gestartet wurde C 5 mal, dann, wenn drücken Sie die Zurück-Taste auf B es gibt mich 5 mal auf die gleiche Aktivität B und in der 6. Zeit gibt es mich wieder auf A

bitte lassen Sie mich wissen, warum das so ist happeneing und wie es

Code zu lösen

//in activity C 
@Override 
public void onBackPressed() { 
    super.onBackPressed(); 

    new Intent(SchadenListeActivity.this, 
VersMoreDetailsModActivity.class); 
    finish(); 
} 

//in activity B 
@Override 
public void onBackPressed() { 
    super.onBackPressed(); 

    new Intent(VersMoreDetailsModActivity.this, 
VersicherungsListeActivity.class); 
    finish(); 
} 
+2

Code hier –

+0

Mögliche doppelte Post von [Wie mehr Aktivität Interaktionen in Android verwalten?] (Http://stackoverflow.com/questions/31578682/how-to-manage-multiple-activity-interactions-in-android) –

+0

@quicklearner Code geschrieben bitte sehen Sie – user2121

Antwort

0

Fügen Mutter Aktivitäten in Ihrem Manifest mit dem Attribut android: parentActivityName = "com.example. myfirstapp

Hier einige weitere Informationen über up-Navigation http://developer.android.com/design/patterns/navigation.html

+0

Bitte fügen Sie einen Kommentar statt einer Antwort bei der Abfrage. –

+0

nein Es ist keine übergeordnete Aktivität im Manifest angegeben – user2121

0

Wenn Sie von A-> B-> C gehen, beenden Sie keine Aktivität. Löschen Sie den onBackPressed() Code, keine Notwendigkeit, damit umzugehen.

0

Jedes Mal, in onBackPressed() Methode Sie eine neue Aktivität und Android-Werke auf Backstack Modell beginnen ..

mir diese also jedes Mal

Activity-A Activity-B Activity-C 

Lassen Sie erklären Sie die Stapel klicken OnBackPressed dies zeigt Verhalten.

Stack [ Activity-A, Activity-B, Activity-C,(Backpressed)(POP Activity-C), Activity-B, Activity-C, (Backpressed)(POP - Activity-C), Activity - B, Activity - C, (BackPressed)(POP - Activity-C), Activity - B, Activity -C...] 

So Stapel Rest wird wie sein

Stack [ Activity-A, Activity-B, Activity-B, Activity - B, Activity - B, Activity -C...] 

Gerade Finish nennen(); nicht neu Absicht.

0

Sie erstellen neue Instanzen von Aktivitäten in onBackPressed.So einfach entfernen Sie die Absichtsanweisungen aus Ihren Aktivitäten.

// in Tätigkeit C

@Override 
public void onBackPressed() 
{ 
super.onBackPressed(); 
finish(); 
} 

// in Aktivität B

@Override 
public void onBackPressed() 
{ 
super.onBackPressed(); 
finish(); 
} 
+0

Ich habe es versucht, aber es hat das Problem nicht gelöst – user2121

Verwandte Themen