做上层开发几乎离不开applet,一个独立的模块都会自成一个applet。比如一个短消息模块。Applet有三种状态:运行,挂起,后台。
在brew里只能有一个正在运行的applet,后台的applet,只能在处理器不忙的时候去做相应。
每个applet都有一个handleEvent函数,这个函数是用来接收AEE发来的事件的。在一个applet在启动的时候都会首先调HandleEvent中的EVT_APP_START事件。所以如果想在applet启动的时候去做事情的话,就要把事件加在这里。在HandleEvent中还有几个事件:
EVT_APP_STOP:停止一个applet
EVT_APP_SUSPEND:挂起一个applet
EVT_APP_RESUME:激活一个applet
对于这几个事件一定要慎用,因为它是系统发过来的,如果对它的处理不挡,会造成程序混乱的景象。
这些都是brew的标准事件,当然也可以自己定义自己的事情去做特定的事情。
ISHELL_PostEvent(pIShell,AEE_APP_CLSID,EVENT_ID, wparam,dwparam)
此函数就用于向applet发送消息,消息的处理体就是每个applet的HandleEvent,第一个参数为ISHELL的对象,第二个参数就是发送消息的applet的class id,第三个参数一般是发送消息的类型,第四个参数就要传递的参数;
ISHELL_PostEvent是一个异步事件,和它功能相同的还有一个同步的事情:
ISHELL_SendEvent(pIShell, AEE_APP_CLSID, EVENT_ID, wparam,dwparam)
此函数的参数的意义与ISHELL_PostEvent的相同。
需要注意的是:当一个applet没有启动的情况下向一个applet发消息,它的处理过程如下:
初始化applet 执行相应的消息处理 释放applet
也就是说在一个applet没有启动的情况下去想一个applet发送消息他不会调用它的start事件,只会去初始化它的数据然后执行消息最后释放。
另外applet分为动态应用和静态应用:
动态应用可以在brew里独立执行,但是静态应用是不能独立运行的。
575

被折叠的 条评论
为什么被折叠?



