BREW3.1中,丰富了Callback的使用。最主要的是,增加了IThread接口并提供了丰富的系统通知机制。
IThread:BREW中的IThread不是基于操作系统层,而是基于应用层实现。所以本质上不具有真正线程的抢占和调度特性。BREW的IThread基于AEECallback。由BREW内核使用AEECallback的方式自动调度。使用IThread的好处是,开发者可以把一系列操作做成“同步”的方式,只需要在该同步的操作中,应用显式的调用IThread_Suspend让度该线程即可。BREW会自动在下某次循环中,从断点处继续执行。IThread的具体操作,请参考SDK。
系统级的通知注册:这类通知主要包括BREW环境初始化,BREW环境退出,RAM不足(低于限定值),EFS不足(低于限定值),应用退出,模块退出。如果应用需要检测这些系统通知,则可以调用IShell_RegisterSystemCallback注册具体的通知,或者直接调用具体的通知注册函数:IShell_OnAppClose,IShell_OnExit,IShell_OnInit IShell_OnLowRAM,IShell_OnLowRAMCritical,IShell_OnLowStorage。需要注意的是,注册这些系统通知的应用,必须始终保证已传入的AEECallback*是有效的!由于这些通知是系统级的,是跨应用生存期的,所以通常情况下只有一直运行的App才会去注册。更多的情况下,其实是Static Class内部在使用。