0
我试图实现长按键的认可,我已经覆盖了的onkeydownAndroid的长期回按键,避免FLAG_CANCELED
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// event.startTracking();
if (backPressedStarted == -1) {
progressBar.setProgress(0);
progressBar.setVisibility(View.VISIBLE);
backPressedStarted = System.currentTimeMillis();
} else {
int pressDuration = (int) (System.currentTimeMillis() - backPressedStarted);
progressBar.setProgress(pressDuration);
if (pressDuration > 5000)
showExitDialog();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
〜3.8秒后,系统调度与标志的onkeyup事件: FLAG_CANCELED
我试着忽略它,并在关键多达方法返回true或false,但它似乎没有工作...
有没有办法解决?我可以定义最长的按下时间吗?
== == UPDATE
好了,当我删除了事件跟踪的注释中,长按回拨被调用,然后返回true或false仍然没有改变最终结果的使用keyUp取消在那段时间之后。
谢谢。
不' onKeyLongPress()'或'onBackPressed()'而不是? – Geobits
长按不会被调用...而按下的按钮只有在活动中添加返回super.onKeyDown(...)时才会被调用。 – TacB0sS
我已经更新了这个问题 – TacB0sS