2016-04-03 56 views
0

我正在嘗試在代碼中構建,以便在按下主頁按鈕時以編程方式終止應用程序。我試過以下內容:當主頁按鈕按下時,如何以編程方式終止android應用程序?

protected void onStop() { 
    super.onStop(); 
    android.os.Process.killProcess(android.os.Process.myPid()); 
    super.onDestroy(); 
    this.finish(); 
    System.exit(1); 
} 

但它仍然不起作用。該程序仍在後臺運行。有任何想法嗎?

+1

「按下主頁按鈕時以編程方式終止應用程序」 - 爲什麼? 「該程序仍在後臺運行」 - 您是如何確定這一點的? – CommonsWare

+0

來自文檔:「用給定的PID來殺死進程請注意,儘管這個API允許我們根據PID來請求終止任何進程,但內核仍然會對您實際能夠殺死的PID施加標準限制。 「這意味着即使呼叫沒有失敗(沒有例外),根本沒有任何效果。 – Machinarius

回答

-2

創建你的類中的下列常量:

public static final int KEYCODE_HOME 

覆蓋onAttachedToWindow方法:

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   
} 

,併爲home鍵的監聽器被按下:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) {  

    if(keyCode == KeyEvent.KEYCODE_HOME) 
    { 
     //This will close the current activity 
     finish(); 
    } 
}); 

乘坐看看這個: Intercept Home Key

希望這會有所幫助!

+0

請複製該鏈接的內容以創建完整正確的答案。 –

+0

只需修復它,謝謝! –

+0

此代碼無法工作.... – simsim

相關問題