网站设计属于什么分类号,做印刷在哪个网站接单好好,百度ai人工智能平台,煤炭建设行业协会网站InputStage事件处理流程
对于java层的按键分发从ViewRootImpl.java的WindowInputEventReceiver中的onInputEvent开始#xff0c;InputStage将输入事件的处理分成若干个阶段#xff08;Stage#xff09;, 如果当前有输入法窗口#xff0c;则事件处理从 NativePreImeInputSt… InputStage事件处理流程
对于java层的按键分发从ViewRootImpl.java的WindowInputEventReceiver中的onInputEvent开始InputStage将输入事件的处理分成若干个阶段Stage, 如果当前有输入法窗口则事件处理从 NativePreImeInputStage 开始否则从EarlyPostImeInputStage 开始流程如下 frameworks/base/core/java/android/view/ViewRootImpl.java
WindowInputEventReceiver::onInputEventenqueueInputEvent(event, this, 0, true);if (processImmediately) { doProcessInputEvents(); }deliverInputEvent(q); //在deliverInputEvent函数中做输入事件的实际分发stage q.shouldSkipIme() ? mFirstPostImeInputStage : mFirstInputStage; //这里开始选择 责任链的入口stage.deliver(q); //这里主要调用InputStage的deliver方法进行分发InputStage代表了输入事件的处理阶段使用责任链模式 设计模式。result onProcess(q);NativePreImeInputStage::onProcessViewPreImeInputStage::onProcessprocessKeyEvent(q);
frameworks/base/core/java/android/view/View.javamView.dispatchKeyEventPreIme(event)return onKeyPreIme(event.getKeyCode(), event); //View系列控件可以直接复写onKeyPreImeImeInputStage::onProcess
frameworks/base/core/java/android/view/ImeFocusController.java final int result mImeFocusController.onProcessImeInputStage(q, q.mEvent, mWindowAttributes, this);
frameworks/base/core/java/android/view/inputmethod/InputMethodManager.javaimm.dispatchInputEvent(event, token, callback, mViewRootImpl.mHandler); //InputMethodManager的dispatchInputEvent方法处理消息EarlyPostImeInputStage::onProcessNativePostImeInputStage::onProcessViewPostImeInputStage::onProcessSyntheticInputStage::onProcess