1

我想处理按键代码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 中引入的

4

1 回答 1

0

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

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

于 2010-04-22T04:48:44.667 回答