WEB开发网
开发学院手机开发Symbian 开发 symbian 开发诀窍大放送 阅读

symbian 开发诀窍大放送

 2010-02-23 16:06:00 来源:WEB开发网   
核心提示:60 上的EAknSoftkeyBack)做出响应,2. 要对外来系统事件做出响应,symbian 开发诀窍大放送(3),请牢记,您的应用程序是在一个多任务电话系统上运行,这样iSomeServer 就会处于NULL:CMyClass::~CMyClass(){iSomeServer->Close();delet
60 上的EAknSoftkeyBack)做出响应。

2. 要对外来系统事件做出响应。请牢记,您的应用程序是在一个多任务电话系统上运行,您需要将注意力集中于刚获得的/丢失的事件上,以确保当用户获得一个高优先级的通知时您能够做出正确响应。例如,正打进来的电话会干扰您的应用程序的运行,这时应确保您已保存了系统状态和数据(即:您需要对标准的“背景”事件采取适当的行动——请参阅SDK)。一般说来,系统框架会处理这个问题,您不需要采取任何特殊行动——但一定要确保您没有妨碍系统框架的正常操作。

3. 内存处理是Symbian OS 需要考虑的一个重要课题。在这一点上,应注意电话有时会不同于模拟器。因此在将您的应用程序呈交给“Symbian 认证签名”进行测试之前,务必确保已在实际电话设备上测试了您的程序。

4. 内存堆栈空间有限!应尽可能将对象放到内存堆中,而不要放到栈里。KERN-EXEC 3 异常(panic)发生的主要原因之一就是栈的破坏/溢出。

5. 应用程序发生异常(panic) 表明您的代码中一定有错误。以下是一些主要、常见的错误:

• 忘记将非对象成员、被分配到堆的变量加到CleanupStack 上。

• 将成员变量放到CleanupStack 上——这一点要千万避免;在析构函数中将这些变量删除就可以了。

• ‘重复删除’——例如,没有正确的从CleanupStack上Pop()出已经被销毁的对象,造成CleanupStack以后试图再次删除它。或者使用过一个对象之后将其删除但忘记将其值设成NULL,从而在析构函数又试图删除一次。

• 用可能不存在于您的析构函数中的变量调用函数。

例如,以下代码可能导致异常,因为有可能您在分配内存之前您的对象已经被销毁,或者在应用程序的另一处已经删除了该内存,这样iSomeServer 就会处于NULL:

CMyClass::~CMyClass()

{

iSomeServer->Close();

delete iSomeServer;

}

应该如下编写代码:

CMyClass::~CMyClass()

{

if (iSomeServer)

{

iSomeServer->Close();

delete iSomeServer;

}

}

• 在NULL 指针上调用函数。

• 函数调用另一个函数,而其使用的变量已经超出范畴,

上一页  1 2 3 4 5 6 7 8  下一页

Tags:symbian 开发 诀窍

编辑录入:coldstar [复制链接] [打 印]
赞助商链接