在didFinishLaunchingWithOptions结束之前,applicationWillResignActive会被调用吗?

applicationWillResignActive:将在application:didFinishLaunchingWithOptions:之前被调用的情况下,情况会发生application:didFinishLaunchingWithOptions: ends

基本上,我可以指望application:didFinishLaunchingWithOptions:总是在applicationWillResignActive触发第一次之前完成

在“应用程序状态和多任务”部分,苹果的iOS应用程序编程指南指出applicationWillResignActive:作为应用程序通过处理运行循环来处理事件的一部分被调用,运行循环仅在application:didFinishLaunchingWithOptions:完成之后开始。

此外,应用程序生命周期事件总是发生在主线程上,所以它们中的一个不可能预先占用另一个,或者彼此平行运行。

是 – 应用程序-application:didFinishLaunching:将始终在之前调用-applicationWillResignActive:

看到这个图像的更多细节:

在这里输入图像说明

runloop可以recursion调用。

application:disFinishLaunchigWithOptions:一个假设的实现application:disFinishLaunchigWithOptions:可以运行runloop,反过来,这将允许从方法中传递通知。

下面的人为的例子会让运行循环运行,但永远不会返回:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { while (YES) [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; }