2016-04-03 6 views
0

私は、ホームボタンが押されたときにプログラムでプログラムを終了させるコードを構築しようとしています。私は以下を試しました:ホームボタンを押したときにアンドロイドアプリをプログラムで終了させるにはどうすればよいですか?

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

まだ動作しません。プログラムはまだバックグラウンドで実行されています。何か案は?

+1

"ホームボタンを押したときにプログラムでプログラムを終了する" - なぜですか? "プログラムはまだバックグラウンドで実行されています" - これはどうやって決めましたか? – CommonsWare

+0

docs: "指定された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);   
} 

そして押されたホームボタンのリスナーを設定します。

@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

関連する問題