2013-01-17 73 views
0

我使用AActivity調用BActivity和BActivity調用CActivity。
如下代碼:
在AActivity:如何在Android上設置意圖標誌

Intent intent = new Intent(); 
intent.setClass(AActivity.this, BActivity.class); 
startActivity(intent); 

在BActivity:

Intent intent = new Intent(); 
intent.setClass(BActivity.this, CActivity.class); 
startActivity(intent); 

如果CActivity我按後退按鈕,我想直接啓動AActiviy。
但不能調用BActivity。
我該如何修改它?

回答

1

在BActivity:

Intent intent = new Intent(); 
intent.setClass(BActivity.this, CActivity.class); 
this.finish(); //***** Add this 
startActivity(intent); 

此時會彈出B變爲OFF後退堆棧,這樣當你按下從CActivity後退按鈕,堆棧中的下一個將顯示AActivity。

注意 - 這不同於上面的答案。在這種方法中,您返回到先前狀態的AActivity(大部分情況)。在上面的第一個答案中,您將啓動一個新的AActivity實例,從而將另一個活動添加到後端堆棧。您需要選擇哪種方法更好地滿足您的需求。

1

您可以覆蓋後退按鈕你CActivity

@Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      Intent intent = new Intent(); 
      intent.setClass(CActivity.this, AActivity.class); 
      startActivity(intent); 
     } 
     return true; 
    } 
相關問題