Alarm的通知机制本质是Event机制,和Timer的Callback机制有本质区别。当Alarm到期时,BREW发送EVT_Alarm事件通知App,如果App不在运行,则先加载App,再处理EVT_Alarm。其本质和BREW的任何事件投递一样。
典型的用法:
1.App调用IShell_SetAlarm设置一个Alarm,指定到期的时间,同时关联一个UserCode,该UserCode唯一的标识一个Alarm。
2.当Alarm到期后,BREW发送EVT_ALARM事件给注册的App,同时事件的参数就是UserCode,供App区分哪个Alarm到期了。
3.BREW保留ALARM信息在Persistent Storage上,而不是存在RAM中,所以,即便手机关机,ALARM信息仍然不会丢失,下次开机后,继续有效。当ALARM在关机过程中过期,则下次开机后,BREW环境初始化后,就会立刻发送过期的EVT_ALARM给相关应用。