Fake KeyEvent не работает * в точности * как «настоящая» кнопка. Почему?

Я пытаюсь вызвать onKeyDown () основного действия с помощью KEYCODE_BACK, чтобы он вел себя так, как если бы я сам нажал кнопку «назад». Я делаю это с помощью следующего кода:

   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);

Моя операция onKeyDown () в настоящее время вызывает только:

return super.onKeyDown(keyCode, event);

Тем не менее, в отличие от настоящей кнопки «Назад», когда вызывается «поддельный» код, действие отказывается выполнять стать невидимым.

Почему?

5
задан srf 22 April 2011 в 01:27
поделиться