应用程序键盘(Keyboard)消息处理机制"/>
Android应用程序键盘(Keyboard)消息处理机制
大体流程
- SystemServer 启动WMS
- WMS 启动InputManager
- 启动新的Activity时回到WMS中注册键盘监听器,当InputManager收到消息时就会交给WMS并交给相应的Activity 进行处理
- 当Activity 失去焦点时就会被反注册被取消键盘监听
InputManager新建的过程
ZygointInit启动SystemServer–>SysmtemServer 启动WMS -->WMS启动InputManager
InputManager 应用程序注册键盘消息接收通道的过程分析
Acitivty 通过requestLayout 来通知InputManager 当前Activity 被激活,然后调用native最后设置InputDispatcher的激活窗口
调用sWindowSession.add 将InputManager 注册
调用InputQueue的registerInputChannel() 注册到当前线程的Looper中
当有消息时就首先查找激活窗口,然后将键盘输入打InputChanel然后发送到Looper的消息队列
InputManager分发键盘消息给应用程序的过程分析
更多推荐
Android应用程序键盘(Keyboard)消息处理机制
发布评论