Chinaunix首页 | 论坛 | 博客
  • 博客访问: 850376
  • 博文数量: 190
  • 博客积分: 7021
  • 博客等级: 少将
  • 技术积分: 1752
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-17 19:26
文章分类

全部博文(190)

文章存档

2014年(9)

2011年(32)

2010年(149)

我的朋友

分类:

2010-06-10 14:05:10

通过“BREW Application Wizard”创建的工程,实际生成的源代码文件只有一个:helloworld.c。AEEAppGen.c和AEEModGen.c是BREW SDK自带的文件。

(图十一)

  源代码文件helloworld.c包括应用的数据结构,创建函数、初始化函数、销毁函数和事件响应函数。通常我们需要修改应用的数据结构、初始化函数、销毁函数和事件响应函数。

  应用的数据结构如图十二:

(图十二)

  在数据结构中,第一个成员必须是AEEApplet a,不可以用其他成员代替该成员。应用的其他成员应在AEEApplet a之后,除此之外,无其他限制。helloworld暂时不需要其他成员数据。

  创建函数:

(图十三)

  应用的入口函数,由BREW系统调用,相当于普通C程序的main()函数,通常不需要改动此函数。此函数会对应用进行必要的创建和初始化工作。

  初始化函数:

(图十四)

  通常由创建函数调用,完成应用的初始化工作。

销毁函数:

(图十五)

  应用退出时,由BREW系统调用,把应用在初始化和运行中所使用的内存和其他资源进行释放处理。

  事件响应处理函数:

(图十六)

  在事件处理函数中, 一般处理的事件有:

    EVT_APP_START ---------- 应用开始启动时发送这个事件

    EVT_APP_STOP ------- -----应用结束时发送这个事件

    EVT_APP_SUSPEND ------应用需要挂起时,比如来电,发送该事件

    EVT_APP_RESUME--------挂起结束,比如用户结束通话,发送该事件

    EVT_KEY---------------------接收必要的用户按键事件.

  用户也可以扩展自己的事件, 比如:

    #define EVT_TIMER (EVT_USER+1)

     EVT_USER 是为用户扩展事件而定义的, 跟Windows 编程中的WM_USER *质一样。

      使用方法:

        ISHELL_PostEvent(pIShell,AEECLSID_HELLO, EVT_TIMER, 0,0);

        ISHELL_SendEvent(pIShell,AEECLSID_HELLO, EVT_TIMER, 0,0);

     不同之处在于 PostEvent 只是将事件放入事件队列,等待合适的时机去执行,而SendEvent则马上处理,只有该事件处理完毕该接口调用才算结束。 与Windows编程中的SendMessage和PostMessage用法相似。

  如果应用已经处理了事件,应该返回TRUE,否则返回FALSE

一个应用创建后,通常收到的第一个事件是EVT_APP_START,应用从这里开始运行。我们第一个应用helloworld就在这里响应事件,在屏幕上显示“Hello World!”。

(图十七)

  红色为添加的代码。编译并在模拟器运行,效果如下:

(图十八)

阅读(766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~