Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【Android】端末の戻るボタンでアプリを終了する

こんばんは。

今回は、端末の戻るボタンを押した時にアプリを終了する方法について書きます。

ログイン後の画面で、ログイン画面に戻りたくないときなどに使えますね!

戻るボタンの押した際の処理は、on KeyDown 内に記述します。


以下、サンプルです。

LoginActivity(戻りたくない画面)

Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
LoginActivity.this.finish(); // これでActivityを終了させ、戻さないようにする

MainActivity(戻るボタンを押す画面)

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
	if (keyCode == KeyEvent.KEYCODE_BACK){
		new AlertDialog.Builder(this)
		.setTitle("アプリケーションの終了")
		.setMessage("アプリケーションを終了してよろしいですか?")
		.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO 自動生成されたメソッド・スタブ
				MainActivity.this.finish();
			}
		})
		.setNegativeButton("No", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO 自動生成されたメソッド・スタブ
				
			}
		})
		.show();
		
		return true;
	}
	return false;
}

なお、アプリの終了方法には色々なやり方がありますが、 System.exit() はアクティビティのライフサイクルを無視するので推奨されないようです。

moveTaskToBack(boolean nonRoot) は、アプリケーション全体を終了する際に推奨される方法らしいです。これはホームボタンを押した時の動作と同じ感じになるそうです。

以上です。
それでは。