我有這樣的活動序列:正確恢復活動
A
=>B
=>C
=>D
=>E
在ButtonClick在E
活性,我恢復C
。在點擊back
按鈕C
後,它會返回到E
而不是B
。
我想恢復C
活動後有C
=>B
=>A
上back
按鈕點擊序列。
我該怎麼做到這一點?
我有這樣的活動序列:正確恢復活動
A
=>B
=>C
=>D
=>E
在ButtonClick在E
活性,我恢復C
。在點擊back
按鈕C
後,它會返回到E
而不是B
。
我想恢復C
活動後有C
=>B
=>A
上back
按鈕點擊序列。
我該怎麼做到這一點?
開始活動C
在意圖中提供FLAG_ACTIVITY_CLEAR_TOP。在關閉頂部C
的所有活動後,C
活動將開始。
Intent ci = new Intent(this,C.class);
ci.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(ci);
標誌開始C
時使用:
FLAG_ACTIVITY_CLEAR_TOP: A
- B
- C
- D
- E
到A
- B
- C
。
FLAG_ACTIVITY_REORDER_TO_FRONT : A
- B
- C
- D
- E
到A
- B
- D
- E
- C
。
onBackPressed()方法定義按下後退按鈕時發生的操作。所以,基本上,如果您完成onBackPressed()中的活動,則活動將從活動堆棧中移除。您可以通過onBackPressed()從Activity C中顯式調用Activity B。
public void onBackPressed() {
super.onBackPressed();
Intent i=new Intent(this,B.class)
startActivity(i);
}
同樣,在A.從B和完成啓動A
所有的活動,只是做回按鈕點擊以下 -
由C -
backButtonC.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(C.this, B.class);
//extras
C.this.startActivity(intent);
}
});
從B -
backButtonB.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(B.this, A.class);
//extras
B.this.startActivity(intent);
}
});
I w因爲使用'ReorderToFront'。我會嘗試其他人並回復。 – arsena 2014-10-19 10:55:45
好的,我認爲'ClearTop'就是我需要的。但是我在使用它時會丟失數據。 什麼是最好的方式來存儲數據'onPause'並檢索'onResume'? – arsena 2014-10-19 11:20:25
使用'ClearTop'並將'LaunchMode'添加到'SingleTop',現在一切正常。謝謝! – arsena 2014-10-19 11:44:40