在Android 1.5中长按键处理

时间:2010-04-21 05:21:52

标签: android keyevent

我想要按键代码KEYCODE_BACK(后退按钮)按键和长按键。任何人都可以建议我如何在Android 1.5(API级别3)中执行此操作。

这是代码。

public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {

                if(event.getRepeatCount()==0) {
                   // normal key press
                   //Do something here
                   // But problem is, this code is hitting for long press also, how to avoid this
                } else {
                    // Long key press
                    //Do something here
                }
                // Always consume back key event by returning true
                //so that default behavior of back is overrided
                return true;
            }
        return super.onKeyDown(keyCode, event);
    }

问题是长按正常按键的代码也会执行。我想避免这种情况。

注意:我不能使用onKeyLongPress()startTracking()等方法,因为它们是在API级别5中引入的

1 个答案:

答案 0 :(得分:0)

实际的事件调度代码没有长按概念,您需要做的就是在应用程序的主线程上对它们进行计时,应用程序可能会变得足够慢,以免在长按期内更新超时。

这是因为,Android 1.5没有真正的Keypress事件处理。这个版本在Android 2.0中引入了一个真正的KeyEvent API和长按的回调函数。