捕获两个物理按钮点击

时间:2010-10-29 00:11:26

标签: android button double-click

如何捕获任意物理按钮(包括光学按钮)的两次点击?

类似于QuickDesk点击主页按钮时的操作。

由于

1 个答案:

答案 0 :(得分:0)

只是一个想法:
如果Android中已经没有API来处理,那么你可以尝试推迟关于单/双/三/等的结论。通过在重写的hadrware按钮处理程序中设置一个小超时(比如大约300毫秒)来点击,同时计算对该特定按钮的调用次数,在计时器停止并且你已经得到它时检查它。


修改

这是我头脑中的一些东西。请稍微调整一下,以获得更优化的性能。

private Timer mDoubleClickTimer;
private boolean possibleDoubleClick = false;

@Override
public boolean onKeyUp(int keyCode, KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_MENU){ //or whatever key you want to check for double-clicks
        if(mDoubleClickTimer!=null) {mDoubleClickTimer.cancel();}
        if(!possibleDoubleClick){
            possibleDoubleClick = true;
            mDoubleClickTimer = new Timer();
            mDoubleClickTimer.schedule(new TimerTask() {
                @Override
                public void run() {
                    //single click detected
                    //handle it here
                    possibleDoubleClick = false;
                }
            },300);
        }else{
            //double click detected
            //handle it here
            possibleDoubleClick = false;
        }
//... other key processing if you need it
return false;
}