ボタンを押した直後の矢印キーのイベント

ちょっとハマったのでメモ。

(調査に協力してくれたid:yone098に感謝)

画面上にボタンを1つ配置してアプリを起動し、ボタンを押してから例えば「↑」キーを押すと、1回押してもActivity#onKeyDown()が呼ばれなかった。(2回目以降はOK)

Activity#dispatchKeyEvent()は呼ばれたので、

dispatchKeyEvent() > キーのデフォルトの動作 > onKeyDown()

かと思ったのだが、よく調べてみるとdispatchKeyEvent()にもACTION_DOWNのイベントが来ていないことが分かった。

というわけで、ボタンを押してから「↑」を押すと1回目のACTION_DOWNイベントは発行されないのかもしれない。

でもなんでなんだろ?