Android 事件传递机制
2010-03-24 05:33:00 来源:WEB开发网核心提示:}}持续的读消息,如果没消息就阻塞,Android 事件传递机制(3),有消息,就读取消息,如switch (ev.classType) {case RawInputEvent.CLASS_KEYBOARD:dispatchKey((KeyEvent)ev.event, 0, 0);mQueue.recycleEven
}
}
持续的读消息,如果没消息就阻塞,有消息,就读取消息,所谓读取消息就得到引用,然后把该消息从双向连表中删除。得到消息后根据消息输入设备类型把消息发送到具体AP 中。如
switch (ev.classType) {
case RawInputEvent.CLASS_KEYBOARD:
dispatchKey((KeyEvent)ev.event, 0, 0);
mQueue.recycleEvent(ev);
break;
case RawInputEvent.CLASS_TOUCHSCREEN:
dispatchPointer(ev, (MotionEvent)ev.event, 0, 0);
break;
case RawInputEvent.CLASS_TRACKBALL:
dispatchTrackball(ev, (MotionEvent)ev.event, 0, 0);
break;
case RawInputEvent.CLASS_CONFIGURATION_CHANGED:
configChanged = true;
break;
default:
mQueue.recycleEvent(ev);
break;
}
当然这其中涉及很多细节,有兴趣可以看看。同时读写队列的互斥机制也值得学习。