2012-12-25 153 views
4

我有兩個活動A和B.活動A調用活動B,當按下「返回」時,活動A將返回,在這很好。問題是,當我從A去B時,然後退出應用程序,當我返回時,我將看到活動B,但這次按「返回」將再次退出應用程序。所以我的問題是 - 如何克服這個問題,所以當我回到應用程序的活動B,按「返回」將我返回到活動A?Android「返回」按鈕操作

+0

只是覆蓋回來的按鈕行爲OnKeyDown事件。 – JuSchz

+0

你能告訴android版嗎? – neworld

+0

你在做任何背部按壓操作嗎?你描述的行爲聽起來不正常。 – Karakuri

回答

7

重寫後退按鈕,然後從中啓動活動A.例如

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     //start activity A here 
    } 
    return super.onKeyDown(keyCode, event); 
} 

在另一方面,如果你的應用程序是較新的設備只(API級別5,我認爲),你可以做到這一點,而不是

@Override 
    public void onBackPressed() { 
     //start activity here 
     super.onBackPressed(); 


    } 
+0

這個解決方案不能讓活動管理器錯誤嗎?所以當按下按鈕將從A返回到B?還是開銷呢? –

+0

@LiranRitkop每個活動都可以用不同的方式覆蓋後退按鈕,所以如果您在活動B中執行此操作,但不在活動A中執行此操作,那麼當用戶在活動A中按下時,後退按鈕的默認操作不會更改A – jcw

+0

,它幾乎奏效。現在,當按下「返回到A」時,我會到達B而不是退出應用程序。所以,現在我完成()開始其他活動時的活動.. –

0
In Activty A Override 
@Override 
    public void onBackPressed() { 
     //start activity here 
     Intent intent=new Intent(context,ActivtyB.class); 
     startActivity(intent); 
    } 

In Activity B Override 
@Override 
    public void onBackPressed() { 
     //start activity here 
     finish(); 
    }