Xamarin.iOS应用程序启动过程和生命周期

此篇文章我们讲解下应用程序的启动过程和生命周期、


首先我们开始看看在OC中的main.m文件

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}
启动过程为:
  • 找到应用程序入口main.m函数
  • 创建自动释放池
  • 执行UIApplicationnMain 函数,但是这个函数永远不会返回,保证程序一直在运行
  • UIApplicationnMain 函数第三个参数是nil,代表着应用程序字符串@"UIApplication", 创建一个应用程序对象
  • 第四个参数:创建应用程序代理对象,并将这个代理对象设置为应用程序对象的代理。
  • 将应用程序代理内的window实例化,并且设置为应用程序的keyWindow
  • 最后加载配置文件中制定的storyboard文件中带箭头的控制器显示到界面上
Xamarin.iOS应用程序启动过程和生命周期_第1张图片
Paste_Image.png
//1.第一次加载完成应用程序,这两个方法会执行
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            // Override point for customization after application launch.
            // If not required for your application you can safely delete this method
            Window = new UIWindow(UIScreen.MainScreen.Bounds);

            Window.RootViewController = new UINavigationController (new ViewController());
            Window.MakeKeyAndVisible();

            return true;
        }
public override void OnActivated(UIApplication application)
{
  Console.WriteLine("OnActivated called, App is active.");
}
//2.点击Home键
public override void OnResignActivation(UIApplication application)
{
  Console.WriteLine("OnResignActivation called, App moving to inactive state.");
}
public override void DidEnterBackground(UIApplication application)
{
  Console.WriteLine("App entering background state.");
}
//3.再进入应用
public override void WillEnterForeground(UIApplication application)
{
  Console.WriteLine("App will enter foreground");
}
public override void OnActivated(UIApplication application)
{
  Console.WriteLine("OnActivated called, App is active.");
}

**注意事项:
请记住,WillTerminate不会被调用,因为我们正在终止在后台暂停的应用程序。
**

到这里应用程序的介绍就完成了,希望能对您有所帮助。

——End 有问题可以加我微信,大家一起讨论

Xamarin.iOS应用程序启动过程和生命周期_第2张图片

你可能感兴趣的:(Xamarin.iOS应用程序启动过程和生命周期)