通常,在我们的应用程序中必须处理以下的几个事件:
1、EVT_APP_START事件。在应用程序启动时,我们在应用程序中注册的事件捕获函数将会接收到这个事件,这表示我们的应用程序已经开始运行了。在我们的应用程序中,可以在这个事件中进行创建接口,或者分配内存空间等操作。
2、EVT_APP_STOP事件。在我们的应用程序结束时将接收到这个事件,表示应用程序已经停止运行了。我们应该在应用程序收到这个事件的时候,释放全部分配的内存和和创建的接口实例等资源。
3、EVT_APP_SUSPEND事件。在我们的应用程序接收到这个事件的时候,它表示应用程序需要中断执行。这种情况通常发生在我们在当前的应用程序中启动了另一个应用程序,或者在我们的应用程序运行过程中收到了一个电话等需要打断当前应用程序运行的情况下。在这个事件中,我们需要保存应用程序中的相关状态数据,用于在应用程序恢复执行时恢复程序的状态。此事件过后,应用程序进入挂起状态。
4、EVT_APP_RESUME事件。在我们的应用程序从中断执行(挂起)状态返回到运行状态时,将会收到这个事件。在这个事件中我们需要根据在EVT_APP_SUSPEND事件中保存的状态数据恢复应用程序的执行状态。此事件之后,应用程序就处于正常的活动状态了。
下面将介绍一下其他相关的BREW系统事件,对于每一个BREW事件,如果有 wParam和dwParam参数,将被传递给给定的小程序和控件。如果我们处理这个事件,需要在事件处理函数中返回TRUE,否则返回FALSE。这些事件如下所示:
事件名称 | 所属类型 | 描述 |
EVT_APP_START | 系统事件 | 启动应用程序的事件,dwParam = ( AEEAppStart * ) |
EVT_APP_STOP | 系统事件 | 应用程序停止,无参数 |
EVT_APP_SUSPEND | 系统事件 | 应用程序挂起,无参数 |
EVT_APP_RESUME | 系统事件 | 应用程序恢复,dwParam = ( AEEAppStart * ) |
EVT_APP_CONFIG | 系统事件 | 切换应用程序,显示配置界面 |
EVT_APP_HIDDEN_CONFIG | 系统事件 | 切换应用程序,显示隐藏配置界面 |
EVT_APP_BROWSE_URL | 系统事件 | 在EVT_APP_START之后调用,dwParam = (const AECHAR * pURL) |
EVT_APP_BROWSE_FILE | 系统事件 | 在 EVT_APP_START 之后调用,dwParam = (const AECHAR * pszFileName) |
EVT_APP_MESSAGE | 系统事件 | 文本消息,wParam = AEESMSEncoding,dwParam取决于 wParam 值的字符串格式 |
EVT_APP_TERMINATE | 系统事件 | EVT_APP_STOP的强制版本。小程序将被释放。 |
EVT_EXIT | 系统事件 | 在BREW终止时发送给所有已加载的小程序 |
EVT_APP_NO_CLOSE | 系统事件 | 应用程序不应关闭 |
EVT_APP_NO_SLEEP | 系统事件 | 应用程序正在运行 - 运行应用程序很长时间之后调用 |
EVT_KEY | 按键事件 | 按键事件,wParam = 按键代码 |
EVT_KEY_PRESS | 按键事件 | 按键按下事件,wParam = 按键代码,发生在EVT_KEY事件之前 |
EVT_KEY_RELEASE | 按键事件 | 按键抬起事件,wParam = 按键代码,发生在EVT_KEY事件之后 |
EVT_CHAR | 按键事件 | 字符事件,wParam表示发生事件的宽字符 |
EVT_UPDATECHAR | 按键事件 | 字符更新事件,wParam表示发生事件的宽字符 |
EVT_COMMAND | 控件事件 | 自定义控件的事件,wParam表示发生事件的Item ID值。如菜单按下时发生此事件。 |
EVT_CTL_TAB | 控件事件 | 控件焦点切换事件,dwParam = 控件;wParam = 0-向左顺序切换,1-向右顺序切换 |
EVT_CTL_SET_TITLE | 控件事件 | 设置标题的消息接口,wParam = ID;dwParam = 资源文件(如果 ID != 0)或文本 |
EVT_CTL_SET_TEXT | 控件事件 | 设置文本的消息接口, wParam = ID;dwParam = 资源文件(如果 ID != 0)或文本 |
EVT_DIALOG_INIT | 对话框事件 | 对话框初始化事件,创建控件,预初始化值、标记和其它项,wParam = ID;dwParam = IDialog * |
EVT_DIALOG_START | 对话框事件 | 对话框打开事件,wParam = ID;dwParam = IDialog * |
EVT_DIALOG_END | 对话框事件 | 对话框正常结束事件,wParam = ID;dwParam = IDialog * |
EVT_COPYRIGHT_END | 对话框事件 | 版权对话框结束事件 |
EVT_ALARM | Shell事件 | 闹钟事件,wParam表示闹钟序号 |
EVT_NOTIFY | Shell事件 | 通知事件,dwParam = AEENotify * |
EVT_BUSY | Shell事件 | 发送到应用程序以确定是否可以中止或停止该应用程序。 |
EVT_FLIP | 设备事件 | 设备翻盖事件,wParam = TRUE(打开);FALSE(关闭) |
EVT_KEYGUARD | 设备事件 | 键盘锁事件,wParam = TRUE(键盘锁定打开) |
EVT_HEADSET | 设备事件 | 耳机事件,wParam == TRUE(已插入耳机,否则为 FALSE) |
EVT_PEN_DOWN | 设备事件 | 触摸笔按下事件,dwParam = 点笔的位置: 高16位表示x坐标,低16位表示y坐标 |
EVT_PEN_MOVE | 设备事件 | 触摸笔移动事件,dwParam = 点笔的位置: 高16位表示x坐标,低16位表示y坐标 |
EVT_PEN_UP | 设备事件 | 触摸笔抬起事件,dwParam = 点笔的位置: 高16位表示x坐标,低16位表示y坐标 |
EVT_PEN_STALE_MOVE | 设备事件 | 触摸笔事件过多时发送,应用程序通常忽略这个事件。dwParam = 点笔的位置: 高16位表示x坐标,低16位表示y坐标 |
EVT_USER | 用户事件 | 用户定义事件(应用程序私有) |
除了上面的这些BREW系统预定义事件外,在BREW SDK中AEE.h文件中还定义了其他的一些事件,有兴趣的读者可以详细的查看这个文件。我们也可以定义属于我们自己应用程序独有的事件,这些事件通常以EVT_USER事件作为起始序号,这样可以避免与系统事件之间的冲突。