我正在尝试使用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/