活动对象简介

异步请求与活动对象


只要不是太费时的操作,其他OS 下的程序多以同步方式编写,即使是异步方式也多以线程轮询的方式来确认请求是否完成。但 Symbian OS 的设计者基于于效率及节省电源的考虑并没有采用通常方式,而是大量地采用了“异步请求 + 活动对象”的特有方式。

异步是指提交请求后不等待请求完成就立即返回。立即返回的好处在于更高的程序效率与良好的用户体验。

Symbian OS也支持线程,但官方不推荐使用线程,而是推荐使用活动对象。活动对象是一个封装了请求及请求完成后回调函数的类,使用时继承 CActive 类重写相关函数即可。

活动对象的一般工作流程如下:

1.  向系统提出请求;

2.  系统完成后调用该活动对象的回调函数;

3.  在活动对象的回调中根据系统的返回状态作进一步处理,如通知活动对象的使用者。

此外,对于已提出而尚未完成的请求,活动对象还可以将其取消。活动对象同一时间内至多只能有一个请求在运作。

Symbian 的应用程序中,活动对象一般都处于最低层最基础的位置,因此在 Symbian 编程中回调 / 观察机制的使用也极其普遍。


回调函数及观察者模式

回调函数是相对于主调函数而言的。主调函数由自己编写自己调用;而回调函数却是由自己编写,由系统/ 框架在适当的时机来调用的。事件处理便是典型的回调函数。

观察者模式是为了让一个对象的变化能以及时通知相关对象而提出的,同时这种通知不需要准确知道对方(观察者)是谁。

通用的观察者模式如图所示:

 

 

 

 

Symbian 的实际程序中该模式做了很多简化,多数的情况下观察者只有一个。

 

 

 

                                                    ——摘自毕业论文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值