??????????????????????????????????????????????event????????????????????????ü????????????????′???????View?????????dispatchKeyEvent????????ò???event?????????KeyEvent???????????dispatch??????ü????????

???????????????????????KeyEvent?????????dispatch???????????????????????Activity???????????????

????Step 12. KeyEvent.dispatch

????[java] view plaincopyprint?

????public class KeyEvent extends InputEvent implements Parcelable {

????......

????public final boolean dispatch(Callback receiver?? DispatcherState state??

????Object target) {

????switch (mAction) {

????case ACTION_DOWN: {

????......

????boolean res = receiver.onKeyDown(mKeyCode?? this);

????......

????return res;

????}

????case ACTION_UP:

????......

????return receiver.onKeyUp(mKeyCode?? this);

????case ACTION_MULTIPLE:

????final int count = mRepeatCount;

????final int code = mKeyCode;

????if (receiver.onKeyMultiple(code?? count?? this)) {

????return true;

????}

????......

????return false;

????}

????return false;

????}

????......

????}

????public class KeyEvent extends InputEvent implements Parcelable {

????......

????public final boolean dispatch(Callback receiver?? DispatcherState state??

????Object target) {

????switch (mAction) {

????case ACTION_DOWN: {

????......

????boolean res = receiver.onKeyDown(mKeyCode?? this);

????......

????return res;

????}

????case ACTION_UP:

????......

????return receiver.onKeyUp(mKeyCode?? this);

????case ACTION_MULTIPLE:

????final int count = mRepeatCount;

????final int code = mKeyCode;

????if (receiver.onKeyMultiple(code?? count?? this)) {

????return true;

????}

????......

????return false;

????}

????return false;

????}

????......

????}

????????????????????frameworks/base/core/java/android/view/KeyEvent.java?С?

????????????ù???????????????receiver?????????View?????????????KeyEvent.Callback???????KeyEvent.Callback???????????????????????????????

????KeyEvent?????????mAction???????????????????????????????????????????ACTION_DOWN??ACTION_UP??ACTION_MULTIPLE?????KeyEvent?????????dispatch??????ò???receiver?????????View???????????onKeyDown??onKeyUp??onKeyMultiple????????????????????????

???????赱????????????????????????????????KeyEvent?????????mAction???????ACTION_DOWN???????????????ò???receiver?????????View???????????onKeyDown????????????????????????