关于AVK_END关闭所有应用程序的有关问题。【大家来讨论下
发布时间:2010-05-30 20:17:35 文章来源:www.iduyao.cn 采编人员:星星草
关于AVK_END关闭所有应用程序的问题。【大家来讨论下
在brew开发过程中,大家可能会发现,AVK_END(就是电源键)被按下时,BREW立即给活动的应用程序发送EVT_APP_STOP消息,关闭这些应用程序。这样关闭后,是不是还有一个应用程序不被关闭啊?因为如果全部都关闭了,那回到哪去呢?所以我觉得应该有一个主应用程序没有被关闭,如果真存在这样的一个app,大家知道是哪个吗?他的ID是多少?能把我的自己的一个应用程序设成这个主应用程序(暂且不考虑能否正常运行)。谢谢
------解决方案--------------------
AVK_END出消息后,确实会发出EVT_APP_STOP命令,但是不是所有的应用都关闭的,有几个后台应用是不会被关闭的。在OEM层的某个函数中有处理,当按AVK_END的时候,会去启动那个待机应用。那个待机应用的classid值不同厂商是不一样的。
------解决方案--------------------
TRUE BREW 手机也叫pure brew 手机,就是说,这个手机的所有应有都是通过brew写成的,例如待机页面,地址本,短信,dialer等等
------解决方案--------------------
一般情况下,BREW在收到AVK_END后,会触发CloseAllApplet动作。
如果当前激活应用拥有PHONE_FLAG,BREW会把AVK_END键发给当前激活应用同时不触发CloseAllApplet动作。
CloseAllApplet确实会导致所有应用关闭,后台应用不算。随后,BREW发现没有当前激活应用,会发出一个
WakeUp动作,将OEM预设的某个应用启动。通常这个应用是Core。效果上也就是回到IDLE。
------解决方案--------------------
一般情况下,BREW在收到AVK_END后,会触发CloseAllApplet动作。
CloseAllApplet确实会导致所有应用关闭,后台应用不算。随后,BREW发现没有当前激活应用,会发出一个
WakeUp动作,将OEM预设的某个应用启动。通常这个应用是Core。效果上也就是回到IDLE。
【如果当前激活应用拥有PHONE_FLAG,BREW会把AVK_END键发给当前激活应用同时不触发CloseAllApplet动作。】
上面这句话是错的,不管有没有PHONE_FLAG,都会被关闭,并且受到EVT_APP_STOP的消息,无法先收到AVK_END键消息
1、CloseAllApplet确实会导致所有应用关闭:这包括你说的那个预设的应用(core)!
2、再开机时,也是启动这个OEM预设的应用(通常这个应用是core)。BREW发现没有当前激活应用,会发出一个WakeUp动作,将OEM预设的某个应用启动。这时不会重新初始化,只启动core显示待机(这算刚开机状态吗?楼主自己想)
3、再启动core时,本来就是马上回到IDLE,没做开机初始化的许多事情。
从log看到,brewappmgr和mainapp先后收到EVT_APP_STOP事件,就死机了。这说明这两者在处理STOP事件时,出了问题。
另外,在brewappmgr处于RESUME状态下来电话,当然会先给brewappmgr发送消息,再给mainapp发送EVT_APP_RESUME事件,不可能直接执行mainapp工程中的代码显示出来电界面,如果直接执行的话,肯定要乱掉的!
------解决方案--------------------
一般情况下,的确如楼上几位所说的,BREW在收到AVK_END后,会触发CloseAllApplet动作,并关闭所有applet。
然后BREW发出WakeUp动作,将一个特殊的applet启动。这个应用是由一个特殊的config项(CFGI_AUTOSTART)指定的。
我认为,BREW平台在初始化时,也就是在AEE_Init()中,会get这个配置项,并进而启动这个No.1应用。
而这个应用有时是core applet,有时是个启动泵applet(主要用于启动其他applet,包括core),不同的手机会
有所不同。
当激活的应用拥有PHONE_FLAG时,它可以截取AVK_END。如果它在处理AVK_END时return TRUE,那么BREW就不会触发
CloseAllApplet了,至少我目前遇到的情况是这样,有的手机的按键比较少,在某些界面上只好截AVK_END事件,并回退
上一层界面,此时我们是不希望BREW关闭所有应用的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
什么情况下应用会收到EVT_KEY_HOOK_XXX事件
最近调代码的时候,发现应用莫名其妙地收到了EVT_KEY_HOOK_XXX事件,而没有捕获到我真正...
-
怎么让数字转化成字符串?
我的程序,需在手机上显示一些记录的条数,这些条数不是固定的,视情况而定,我需要把记录的条数显示到手机...
-
如何获取基站CellID信息
RT
------解决方案--------------------
IPOSDET_GetSectorInfo这个接口...
-
文本的字体显示问题;和保存.txt时,在模拟器上保存成功,到真机上就保存失败,这是什么原因?
我资源管理里面加载的汉子是直接从网上下载...
-
BREW如何获取手机号码
BREW如何获取手机号码
------解决方案--------------------
如果在联网的时候使用了CTWAP的网关,可以从ht...
-
关于BREW里面的电池条问题?怎么才能知道这个电池条是否处于关闭或者打开的状态?
C/C++ code
HTC_SetAnn(pMe->a.m_pIDisplay,0);
...
-
我快崩溃了
切分一行两列的窗口时,左边的视图类是:(一个对话框资源,里面包含树形控件,同时为该对话框添加了一个类,但基类是CFormView)。...
-
关于BREW资源编辑器,里面加载的汉字的极限?
我用资源编辑器加载汉字,我大量的加载汉字,结果就出现问题。加载几百个汉字,模拟器上不会...
-
BREW里面的动画是怎么播放的?
我用了 高通SDK 下的 BCI软件编辑了个 4帧的动画,保存成.bci文件,然后通过资源管理器加载进去。
ISHEL...
-
急啊,求大侠啦!
各位大侠,小弟初学BREW MP,现在已安装BMP_SDKMP_7.10.12_ZHCN_SETUP,在VS 2010的工具栏里也有BMP的插件,但是为什么插...