嵌入式Linux中文站

Bada系统学习-多任务模式


bada平台2.0及更高的API版本支持多任务模式.然而,当许多bada应用在同时运行时,只能有一个应用运行在前端,其它的应用则运行于后台.用户可以调整应用的优先级并且任意时刻都可以使用任务管理器(可以列出所有当前正在运行的应用)来决定让哪个应用运行在前台.多任务应用在用户按下End按钮后,或者系统内存过低时将退出运行.

 

多任务模式对于手机终端来说很耗费终端内存.因此,我们强烈建议多任务特性仅用于十分需要这个特性的地方. 仅在当别的应用当前正在运行,而你需要你的(C++/FLASH/web)应用在后台运行时才使用/开启多任务模式.例如,当你发短信或干别的事情的时候,你的播放器可以继续在后台运行. 但对于计算器这类程序就完全没有在后台运行的必要.

 

任何音频播放应用都有比其他应用拥有更高的多任务模式下的运行优先级,因为用户并不想他的音频播放器因为在后台运行而停止播放.多任务模式优先级别对于音频播放器来讲,仅在它仍在播放过程中时保持较高的优先级, 而非当其已经暂停或者结束播放时仍然如此.

 

 

为了防止未知的问题,例如内存耗尽,三星官方应用区别于非多任务应用,对于多任务模式应用实行严格的基础可靠性测试,分析.

 

建议仅在在以下情况使用多任务模式:

 

1.需在后台播放音乐或者声音

2.在后台访问地理位置信息

3.后台捕获传感器数据(触屏,陀螺仪重力感应等)

4.网络应用需要后台访问服务器

5.VOIP应用( Voice over Internet Protocol 一种由IP网络传送话音的技术服务)

 

注意:非开启多任务模式的应用在用户点击HOME键返回时将不会在后台运行,在用户点击END或者其它程序启动后将退出运行.

 

内存即将用尽政策:

 

当内存过低,系统显示当前运行应用列表,并提示用户结束其中一些应用以释放部分内存.

 

由于存在多个多任务模式应用同时运行在后台的可能,所以内存过低的情况将很常见. 对2.0及更高版本的API来说,当系统内存过低,系统会自动将后台运行的应用一个个结束,直到获得足够的基本系统运行所需内存.应用被结束的顺序为它们被用户置于后台的顺序,即距离最后一次置于前台运行时间间隔最长的后台程序将被最先为系统自动结束掉.系统直到内存恢复正常前将不会为此提示用户强制结束应用操作的动作

 

当内存过低时,系统会通过调用Osp::App::Application::OnAppTerminating()(c++框架中),或者Osp.App.Application.onTerminating() (Web 框架中)事件处理器直接终止应用运行,并释放其所占内存.对于C++/flash应用,为防止引内存过低被系统强制关闭而丢失数据,我们可以将应用状态,数据,上下文环境存储在应用的注册值或者存储器中(实现了接口Osp::App::IAppCheckpointEventListener). 它的OnAppCheckpointing()事件处理器会在内存过低,后台程序可能被终止时被调用.在web应用中,我们可以使用Osp.App.Application.onCheckpointing()事件处理器来防止因意外终止而丢失数据.

 

当内存过低时,应用被终止的顺序为:

 

1.后台程序

将被一个接一个终止,直到内存恢复正常

 

2.前台应用

 

3.输入法程序

本文永久更新链接:http://embeddedlinux.org.cn/emb-linux/system-development/201110/30-1800.html



分享:

评论