[Android]Homeボタンを押されたことを検知するのおまけ。戻るボタンを押した時に onKeyDown や onKeyUp でイベント拾って
処理することあるけど Android 2.0 以前では onKeyDown で finish() して
Android 2.0 以降は onKeyUp で finish() する処理になっていたみたい。
Activity#onKeyDown(int, KeyEvent) | Android Developers
Activity#onKeyUp(int, KeyEvent) | Android Developers
参考
ハードキーフックの方法 - 明日の鍵
確実なのはシステムに KeyEvent が送られる dispatchKeyEvent で何かを処理する事。
@Override
public boolean dispatchKeyEvent(KeyEvent event){
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){
// 戻るボタンが押された!
}
return super.dispatchKeyEvent(event);
}キーダウンとキーアップの両方で呼ばれるので注意。Activity#dispatchKeyEvent(KeyEvent) | Android Developers
戻るボタンのみイベントが取れれば良ければ onBackPressed が一番簡単。
@Override
public void onBackPressed(){
super.onBackPressed();
}super.onBackPressed(); は finish() するだけのメソッドなのでこいつをコメントアウトして好きな処理を書けば良い。
Activity#onBackPressed() | Android Developers
ちなみに呼び出し順は以下のとおり。
Activity#dispatchKeyEvent Activity#onKeyDown Activity#dispatchKeyEvent Activity#onKeyUp Activity#onBackPressed