戻るボタンを押した時に 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