2012-10-29 233 views
0

手機後退按鈕讓我感到莫名其妙。這個問題已經被問了很多次了,但我還沒有得到解決方案。所以再按照我的要求再問。Android:手機後退按鈕

我有一個主屏幕活動 它調用3個活動 - 每個活動又調用2個活動。

假設我瀏覽這樣

首頁> ACT1> SubAct1a> SubAct1b>首頁(通過Home鍵)> ACT2>首頁> ACT3

現在ACT3,當我按下手機的背面按鈕,我到家。此時我的要求是當我再次按下BACK按鈕時,它應該退出應用程序。但是,會發生什麼它,它是這樣的

ACT2>首頁> SubAct1b> SubAct1a> ACT1>首頁> EXIT

因此,用戶被後衛退出應用程序之前,必須按多次。

按下HOME鍵是一個選項,但我希望BACK也能正常工作。

我有這樣一段代碼在首頁的活動 - 但它並沒有在所有

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     finish(); 
     System.exit(0); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

它只是恢復到以前的活動是在工作。

+0

因爲它只是完成當前的activity.Other活動仍在運行。 – juned

回答

0

您應該返回真正,告訴你已經處理這種情況的系統,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     finish(); 
     System.exit(0); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

當你開始你的家庭活動,嘗試設置明確的頂部標誌...

Intent intent = new Intent(this, HomeActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

我只是嘗試過。但它不起作用。它總是回到最後的活動。 – Jasma

+0

這就是後退鍵應該如何工作。你能否形成一個更清晰的例子來說明你想要達到的目標? – Simon

+0

嘗試使用Intent.FLAG_ACTIVITY_NEW_TASK作爲更新後的答案.. – Nermeen

0

試試這個: -

@Override 
public void onBackPressed() { 
      Intent i=new Intent(currentclass.this,Home.class) 
    startActivity(i); 
    finish(); 
    super.onBackPressed(); 
} 
1

嘗試添加ŧ他在你的onCreate()

Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
0

當你從一個活動到另一個活動,完成前一個活動。然後

覆蓋後退按鈕,並完成當前的活動,如果用戶按下它,那麼我認爲你的問題將得到解決。

Intent i=new Intent(currentclass.this, Act1.class) 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
    finish(); 

最後

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     finish(); 
    } 

    return true; 
}