Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3345171
  • 博文数量: 1450
  • 博客积分: 11163
  • 博客等级: 上将
  • 技术积分: 11101
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-25 14:40
文章分类

全部博文(1450)

文章存档

2017年(5)

2014年(2)

2013年(3)

2012年(35)

2011年(39)

2010年(88)

2009年(395)

2008年(382)

2007年(241)

2006年(246)

2005年(14)

分类: C/C++

2009-07-21 10:36:33


第一步, 活动对象类要继承自 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;
三、在构造函数内实例化该指针,并调用活动对象的二次构造函数

可能写的还不是很好,希望大家指正:)
阅读(530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~