我正在尝试使用KEYCODE_BACK调用主 Activity 的onKeyDown(),以便其行为就像我自己按下“后退”按钮一样。我使用以下代码来做到这一点:

   KeyEvent goBackDown = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK,0,0);
    goBackDown.dispatch(activity);
    SystemClock.sleep(50);  // as if human pressed the key
    KeyEvent goBackUp = new KeyEvent(0,0,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_BACK,0,0);
    goBackUp.dispatch(activity);

我的 Activity 的onKeyDown()当前仅调用:
return super.onKeyDown(keyCode, event);

但是,与真正的“后退”按钮不同,当调用“伪”代码时, Activity 拒绝变得不可见。

为什么?

最佳答案

采用

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK));

http://developer.android.com/reference/android/view/View.html#dispatchKeyEvent%28android.view.KeyEvent%29

关于android - 假KeyEvent不能像 “real”按钮那样“完全”起作用。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5751486/

10-12 04:34