接上篇,看看HelloWorld的启动过程。
展开项目视图:
展开/inc,/src目录,我们看到对应的.h,.cpp文件,还有个很特别的HelloWorldEntry.cpp,
我们可以猜到这个就是HelloeWorld程序的入口了,
进去瞧瞧:
果然有个int OspMain(int argc, char *pArgv[])的方法,
找到这句:
r = Osp::App::Application::Execute(HelloWorld::CreateInstance, pArgs);
Excute前一个参数传的是ApplicationInstanceFactory对象,由HelloWorld类产生。
我们再打开HelloWorld的cpp文件
HelloWorld::CreateInstance(void)
{
// Create the instance through the constructor.
return new HelloWorld();
}
HelloWorld继承Osp::App::Application这个类,所以Main方法中Execute实例化这个对象。
我们打开HelloWorld.h文件:
会看到一系列的生命周期函数,可以类比android的Activity类。
实例化HelloWorld对象会首先调用其HelloWorld::OnAppInitializing(AppRegistry& appRegistry)方法。
我们可以使用AppLog("HelloWorld init.")进行日志输出;
其它函数:
OnAppTerminating:应用程序终止的时候调用。
OnForeground :应用程序前台显示的时候调用。
OnBackground :应用程序转入后台的时候调用。
OnLowMemory :内存不足的时候调用,如释放资源或者关闭应用程序。
OnBatteryLevelChanged:电量不足调用,如关闭多媒体(拍照,播放音频,视频等)。
OnScreenOn :屏幕关闭调用,可恢复应用程序的数据。
OnScreenOff : 屏幕关闭调用,可保存应用程序的数据。
在OnAppInitializing方法中,我们可以看到:
在OnAppInitializing方法中,我们可以看到:
我们看到的界面就是Form1这个类的实例,
Form1继承Form类,打开Form1.cpp,我们在OnInitializing方法中看到我们期待的Button了,
实例化Button,添加响应事件__pButtonOk->AddActionEventListener(*this);
日志输出:
结束HelloWolrd。