Symbian 应用程序框架浅析
2010-05-31 20:24:00 来源:WEB开发网h、处理命令:完成以上步骤后,用户可以通过比如菜单选项之类的交互UI使框架调用HandleCommandL()函数,并传递一个参数aCommand,它指明了用户所选择的命令,HandleCommandL()会据此来判断不同的命令以分别调度执行。在此处还有一个必须注意的地方是如果要程序的 View实例也回应用户的按键,则必须将View实例通过AppUi的AddToStackL()函数加入到AppUi实例的控件堆栈(control stack)中。具体的调用方式实现以按键来解释如下流程所示:
对于上面的调用方式实现说明,个人觉得有必要再将AppUi的几个重要事件处理方法罗列一下:
HandleWsEventL()用于处理窗口服务器传递的事件,它的作用使框架调用下面这些具体事件处理方法;
HandKeyEvent()用于处理用户按键事件(此函数在控件堆栈为空时调用,否则框架将会调用OfferKeyEventL()函数);
HandleForegroundEventL()当应用程序切换到前台或从前台切换到后台时调用该函数,默认的实现可以处理键盘焦点的改变;
HandleSystemEventL()用于处理由窗口服务器生成的事件;
HandleApplicationSpecificEventL()用于处理自己定义的自定义事件。默认的实现可以处理颜色方案改变的通知;
HandleCommandL()用于处理用户选择的菜单项;
HandleSwitchOnEventL()用于处理像设备切换之类的特定切换事件;
HandleMessageReadyL()用于处理窗口服务器产生的消息事件。
在以上各函数处理事件中,除了第一个HandleWsEventL()函数外,其它函数默认都是纯虚函数,需要重载才能用。
通过以上对应用程序框架初始化步骤后,一个完整的框架就创建完毕了,其具体过程可以由一个图来形象做结。
本文中参考了网络上的一些文章链接如下:
Symbian程序框架研究http://www.sf.org.cn/Article/lumen/200607/18837.html
Symbian开发初级手册http://www.sf.org.cn/Article/lumen/200508/34.html
更多精彩
赞助商链接