2011-07-07 107 views
0

說我有3個活動在我的申請:A,B和C的流量,雖然應用程序是:A - >乙 - > C.Android的後退按鈕問題

一旦在C,按下後退按鈕將將用戶帶到B.如果用戶在他們到達A時再次按下後退按鈕,並且最後如果他們再按一次,則退出應用程序。

目標:當用戶按下C上的後退按鈕時,他們應該去A和而不是 B,如果他們再按一次,他們就退出應用程序。

問題:當重寫Activity C上的後退按鈕以啓動Activity時,一切似乎都正常。但是,如果用戶再次按下後退按鈕時,他們返回到活動C.因此按後退按鈕只是活動A和活動C.之間切換

我猜活動堆棧的樣子:

  • 開放應用:一個
  • 轉到B:A,B
  • 轉到C:A,B,C
  • 按返回:A,B,C,A
  • 按回:A,B,C
  • 按回:A,B,C,A
  • 按回:A,B,C
  • 按回:A,B,C,A
  • 按回:A,B,C
  • 按回:A,B,C,A
  • ...等

如此看來錯誤是按下C上的後退按鈕時啓動一個新的活動?無論如何,我可以就如何實現這一行爲提供建議。

感謝, 傑克

回答

5

您可以在活動B的onStop()方法添加finish()

這樣,當活動B將不再是可見的,它會被銷燬並從堆棧中移除。

  • 打開應用:一個
  • 轉到B:A,B
  • 轉到C:A,C
  • 按返回:一個
  • 按返回:退出
2

當你去活動B到活動C首先完成活動B,則去活動C.

例如: -

finish(); 
Intent i2 = new Intent(Acttivity.B, Acttivity.C); 
startActivity(i2); 
+0

這個工作。 TY。 – Jack