第一步, 活动对象类要继承自 CActive
第二步, 在类中要实现下面几个方法
public:
CCallDialer(MDialObserver& aObserver); //参数为观察都的构造函数
void ConstructL(const TDesC& aNumber); //二次构造方法
~CCallDialer(); //析构函数
private:
void RunL(); //RUNL方法
void DoCancel(); //取消操作方法
private:
MDialObserver& iObserver; //观察者成员变量
第三步, 定义一下观察类接口, 如下:
class MDialObserver
{
public:
virtual void CallDialedL(TInt aError) = 0; //在该类中要有一个虚函数的回调方法
};
第四步, 活动对象的实现部分
1, 构造函数的实现
一、初始化成员变量,一些不会引起异常的操作
二、将该对象加入到活动对象调度器中, CActiveScheduler::Add(this);
2, 二次构造函数的实现
一、初始化,可能引起异常的操作在二次构造函数中实现
二、激活该活动对象,所活动对象调度器可以调度该活动对象, SetActive();
3, 实现 RunL 方法
在该方法中调用观察者中的接口方法,如 iObserver.CallDialedL(iStatus.Int());
4, 析构函数的实现
一、做取消操作, 如 Cancel();
二、释放资源
5, DoCancel方法的实现
做各种服务的取消操作
第五步,使用活动对象
一、Container 类继承 观察者接口类
二、在Container类中声明一个活动对象的指针 ActiveObj *aobj;
三、在构造函数内实例化该指针,并调用活动对象的二次构造函数
可能写的还不是很好,希望大家指正:)
阅读(562) | 评论(0) | 转发(0) |