3

可以在结束applicationWillResignActive:前调用的场景发生吗?application:didFinishLaunchingWithOptions:

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

4

3 回答 3

44

-application:didFinishLaunching:总是会在之前被调用-applicationWillResignActive:

有关更多详细信息,请参见此图像:

在此处输入图像描述

于 2013-06-02T08:01:28.570 回答
4

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

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

于 2013-06-02T08:08:57.377 回答
0

runloop 可以递归调用。

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    while (YES)
        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
于 2013-06-02T09:58:00.877 回答