在didFinishLaunchingWithOptions结束之前是否曾调用applicationWillResignActive?

时间:2013-06-02 07:39:45

标签: ios uiapplicationdelegate

applicationWillResignActive: 结束之前调用application:didFinishLaunchingWithOptions:的情况会发生吗?

基本上,在第一次触发application:didFinishLaunchingWithOptions:之前,我可以依靠applicationWillResignActive始终完成吗?

3 个答案:

答案 0 :(得分:43)

-application:didFinishLaunching:

之前始终会调用-applicationWillResignActive:

有关详细信息,请参阅此图片:

enter image description here

答案 1 :(得分:4)

“应用程序状态和多任务处理”部分中的Apple的 iOS App Programming Guide 表示applicationWillResignActive:被称为应用程序通过处理运行循环处理事件的一部分,在application:didFinishLaunchingWithOptions:完成后开始。

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

答案 2 :(得分:0)

可以递归调用runloop。

application:disFinishLaunchigWithOptions:的假设实现可以运行runloop,而runloop又允许从方法中传递通知。

以下设想的示例将让运行循环运行,但永远不会返回:

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