找回密码
 注册
搜索
查看: 1994|回复: 5

app启动收到的第一个事件可以不是EVT_APP_START吗??

[复制链接]
发表于 2011-3-19 16:42:43 | 显示全部楼层 |阅读模式
第一个接到的事件不一定是EVT_APP_START吗?
在Alarm_HandleEvent()处设置断点,有下面的情况:
1.开机时接到的第一个事件是BMT_EVT_ALARM_SET
2.IDLE界面闹钟到期时接到的第一个事件是EVT_ALARM

这是否证明了app启动时不一定收到EVT_APP_START?
BMT_EVT_ALARM是通过
iSHELL_PostEvent(pIShell, AEECLSID_ALARMCLOCK, EVT_ALARM, 0, 0)发过来的。

我的理解:在idle时不存在AEECLSID_ALARMCLOCK对应的实例alarm,于是创建此实例
但创建了后不是应该先发送EVT_APP_START,再处理发过来的事件EVT_ALARM吗?
难道通过postEvent时就不发送EVT_APP_START这一系统事件而默认APP启动了,
直接处理发过来的事件?

刚搞BREW,请大侠指点,谢谢。
 楼主| 发表于 2011-3-21 13:46:42 | 显示全部楼层
以下是引用megaderma在2011-3-21 9:06:20的发言:
app有前台的,也有后台的。
如你所说的alarm,开机的的时候早已经被启动了,然后放在后台运行。
在idle界面,闹钟到来,后台的alarm也可以收到post过来的事件。


谢谢2#。
但是为什么从一开机ALARM就没收到过EVT_APP_START,
在Alarm_HandleEvent()处设置断点,
开机时断掉,接到的第一个事件是BMT_EVT_ALARM_SET??
开机时idle发送此事件
ISHELL_PostEvent(pThis->a.m_pIShell, AEECLSID_ALARMCLOCK, BMT_EVT_ALARM_SET,  0,  0L);
即使在后台运行,也在启动此app是必然收到EVT_APP_START的,但在_handleEvent()处断点,却没有收到?
点评回复

使用道具 举报

发表于 2011-3-21 09:06:20 | 显示全部楼层
app有前台的,也有后台的。
如你所说的alarm,开机的的时候早已经被启动了,然后放在后台运行。
在idle界面,闹钟到来,后台的alarm也可以收到post过来的事件。
点评回复

使用道具 举报

发表于 2011-4-17 15:45:35 | 显示全部楼层
钱是个好东西。
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/bbs/Detail_RD.BBS_206766_86_1_1.html
点评回复

使用道具 举报

发表于 2011-5-13 11:01:51 | 显示全部楼层
EVT_APP_START只有在调用ISHELL_StartApplet()的时候才会收到,如果app是以后台运行的方式启动,则会收到EVT_APP_START_BACKGROUND,而不是前者。App不启动(成为前台应有),也是可以接收事件的,比如EVT_NOTIFY之类的事件。

EVT_APP_START的收到表示该应用会成为top-visible的应用,能够操作屏幕和按键,这不代表它是应用HandleEvent函数里第一个被处理的事件。
点评回复

使用道具 举报

发表于 2011-9-16 15:20:06 | 显示全部楼层
学习下子
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-13 23:39 , Processed in 0.048037 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表