2022年深入BREW消息处理机 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年深入BREW消息处理机 .pdf》由会员分享,可在线阅读,更多相关《2022年深入BREW消息处理机 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、深入 BREW 消息处理机制作者:东方欲晓消息处理机制, 即 event driven和传统的编程机制不同,如 dos ,unix 下的 c 编程,他没有 main loop,程序的流程不是顺序执行的。有过window编程经历的读者都会清楚这种机制。Windows下消息处理机制:当在交互中进行一个action (or signal, or input, etc ) ,window产生相应的 event ,通过 window的 event dispatch机制, 相应的窗口或者app 得到该 event ,从而触发相应的 event handler fun进行处理。BREW 下消息处理机制简而言
2、之也相似,即 BREW 环境(这里是 AEE Shell)捕捉到 event后,dispatch到相应的 app 或者 control,由其 event handler fun处理。区别:我们知道BREW的体系结构采用了COM方式,即具有面向对象的类层次结构,从而其具体的event handler fun也是作为各个Interface的外露的接口函数的形式被运用。一个applet本质上来说就是一个实例化的IAPPLET类, 所以这样就统一了所有在applet中运用的 event handler fun都是各个Interface的外露接口函数的说法。具体而言,这些event handler fu
3、n还是有区别的,主要是IAPPLET_Handleevent和其他 Interface的 Handleevent的区别。IAPPLET_Handleevent是通过在AEEClsCreateInstance中的 AEEApplet_New函数被注册实例化的, AEEApplet_New函数实例化用户的APPLET 的 Class同时也通过传入USERAPP_HandleEvent参数实例化了IAPPLET_Handleevent。除了 IAPPLET 具有 handleevent外,所有的继承Icontrol接口的 Interface也具有事件处理函数,允许 处 理事 件 。 这 些 各 种
4、具 体 的 Icontrol_handleevent有两种方 式被 调 用 。 一种 是 在applet的handleevent中由 programmer显式的调用,如:switch (eCode) case EVT_APP_START: return(TRUE); case EVT_APP_STOP: . Case EVT_KEY: IMENU_Handleevent.ItextCtl_Handleevent.另一种是当这些Control包含于 Dialog中,且处于focus状态时,这些事件处理函数的触发是隐式的,是由 AEE 机制自动触发的,无需在代码中显式的调用这些handleeven
5、t。Idialog接口没有外露的handleevent接口函数,但是允许通过Idialog_seteventhandle来注册一个该Dialog的事件处理函数。 需要注意的是, 该事件处理函数是何时被触发的:一旦当一个dialog处于 active时, aee shell将会把所有的event直接发往该dialog ,该 dialog会自动的调用处于focus的 control的 handleevent来处理该事件,只有当该control没有处理该事件时,dialog注册的事件处理函数才会被调用。Brew 中的 handle event函数都是 boolean返回类型的,这是为了实现事件处理的
6、层次机制,当该层上的 handle event没有处理该事件时,应该返回false ,以便上层对该事件感兴趣的handle event来处理。 如果处理了,应该返回TRUE ,说明该事件已被处理,无需其他层再处理。有了以上知识后,下面给出完整的BREW 环境下消息分发和处理的流程。首先 BREW 存在于一个task 中,尽管允许 brew运行于一个单独的task 中,但是实际oem中都是将其运行于现有的一个task中,比如 ui task。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
7、第 1 页,共 3 页 - - - - - - - - - 当 brew运行后,首先 ui task中捕捉到各种事件, 此时 ui task通过 aee_dispatch将事件分发至brew环境中,brew环境再通过aee_sentevent具体分发事件至目的地。接着在两种不同的情况下将走不同的流程。如果当前没有active dialog,则紧接着IAPPLET_Handleevent被 brew自动调用来处理事件,而此时调用的 IAPPLET_Handleevent其实就是用户注册的自己的applet_handleevent。从而实现了允许用户 app 捕捉到事件并处理的机制。在用户的app
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年深入BREW消息处理机 2022 深入 BREW 消息 处理机
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内