2013-04-05 44 views
-1

我已經創建了一個Android應用程序。如何關閉我的Android應用程序,當我點擊從我的手機後退按鈕?

我需要關閉或退出我的應用程序,當我點擊從我的手機後退按鈕。

我該如何做到這一點?

+0

覆蓋onBackPressed,然後完成當前的活動。 – Pragnani 2013-04-05 09:09:04

+0

@Pragnani你能給我一個樣品嗎? – prabu 2013-04-05 09:10:30

+3

我認爲Android默認情況下是這樣嗎? – JRowan 2013-04-05 09:12:17

回答

5

你必須處理後退按鈕的功能

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    finish(); 
} 
2
@Override 
public void onBackPressed() { 
    this.finish(); 
} 

試試這個

說,如果你是在一些內心活動設置應用程序類的一些布爾和所有其他活動的簡歷檢查該布爾然後完成它,如果布爾設置

+1

使用'this.'在這裏沒有真正的好處 – 2013-04-05 09:21:16

3

當你按下後退按鈕時,活動從棧中彈出並銷燬。堆棧中的前一個活動需要關注。

假設您有3項活動。 A,B和C.您導航到C. A到B到C.從C可以使用下面的代碼導航到A.

您可以覆蓋按下後退按鈕並致電finish()

如果您處於活動A中,您只需按返回按鈕即可退出。

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

} 

return super.onKeyDown(keyCode, event); 
    } 

public void onBackPressed() { 
Intent myIntent = new Intent(C.this, A.class); 
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear the backstack 
startActivity(myIntent); 
finish(); 
return; 
    } 

編輯:

一些開發商和一些人對計算器認爲後退按鈕應該ATLEAST回到以前的活動。它是這樣的。因此,重寫默認功能並清除堆棧可能不是一個好主意。

您可能還需要考慮使用抽屜式導航

http://developer.android.com/design/patterns/navigation.html

還要檢查這個

Is quitting an application frowned upon?

-1

試試這個。

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 

     finish(); 
    } 
    return false; 
} 
+0

@prabu看到我編輯的答案。 – Yugesh 2013-04-05 11:14:27

1

您不需要調用任何方法來關閉應用程序; Android會照顧它。無論何時按下後退按鈕,finish()都會在Activity上被調用,並且活動將被銷燬。你沒有問關於Service的權利?由於服務在後臺運行,因此必須根據需要來關閉服務。

1

Pleeeease通過CommonsWare讀這樣的回答:Is quitting an application frowned upon?

這是爲什麼這是 Android應用程式設計的一個很好的辦法很好擊穿。結論:

同樣,我會勸你對試圖端口您 應用到Web上,因爲有些人有同樣的問題 報道與Android,你會在網絡找到的應用程式以及(例如,沒有 「終止」)。或者相反,如果您將應用移植到 網絡,您可能會發現Web應用的流程可能與Android的 更匹配,您可以在此時重新訪問Android端口。

相關問題