バックキーを押す機能をオーバーライドしようとしています。ユーザーが一度押すと、前の画面に戻りたいです。ただし、戻るキーが長押しされた場合 (たとえば、2 秒以上)、アプリケーションを終了したいと考えています。
ここまでで、アクティビティで次の 2 つのメソッドをオーバーライドしました。
@Override
public boolean onKeyDown( int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
//manage short keypress
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyLongPress( int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
//manage long keypress (different code than short one)
return true;
}
return super.onKeyLongPress(keyCode, event);
}
ただし、onKeyLongPress
イベントは常にonKeyDown
メソッドによって受信されるため、コールバックは呼び出されません。
両方の方法を機能させる方法はありますか? または、それをすべて実行し、onKeyDown
繰り返し数/ミリ秒を使用して検出する必要がありますか?