iOS appDelegate 生命周期

iOS appDelegate 生命周期

2012-11-20 16:11 2942人阅读 评论(0) 收藏 举报 ◆- (void)applicationWillResignActive:(UIApplication *)application

说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了

◆- (void)applicationDidBecomeActive:(UIApplication *)application

说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反

◆- (void)applicationDidEnterBackground:(UIApplication *)application

说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可

◆- (void)applicationWillEnterForeground:(UIApplication *)application

说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。

◆- (void)applicationWillTerminate:(UIApplication *)application

说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。

◆- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

说明:iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止

◆- (void)applicationSignificantTimeChange:(UIApplication*)application

说明:当系统时间发生改变时执行

◆- (void)applicationDidFinishLaunching:(UIApplication*)application

说明:当程序载入后执行

◆- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame

说明:当StatusBar框将要变化时执行

◆- (void)application:(UIApplication*)application willChangeStatusBarOrientation:

(UIInterfaceOrientation)newStatusBarOrientation
duration:(NSTimeInterval)duration 说明:当StatusBar框方向将要变化时执行

◆- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url

说明:当通过url执行

◆- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation

说明:当StatusBar框方向变化完成后执行

◆- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame

说明:当StatusBar框变化完成后执行

下图是我总结的一个大概流程图,不是很准确但是基本上也说明了整个过程,仅供参考。

UIApplication状态转换的Delegate消息编号如下:

application:didFinishLaunchingWithOptions: application:openURL:sourceApplication:annotation: applicationDidBecomeActive: applicationWillResignActive: applicationDidEnterBackground: applicationWillEnterForeground: applicationWillTerminate: 则对于下面各种操作Delegate消息的发送顺序为

通过SpringBoard第一次启动,消息顺序为1-3 通过URL第一次启动,消息顺序为1-2-3 运行过程中按Home键,消息顺序为 4-5 若为iOS4.0以下或者Info.plist中设置了UIApplicationExitsOnSuspend,则继续发送消息 7,然后程序终止; 否则根据程序设置进入Background运行模式或者Suspend状态。 运行过程中按锁屏键,消息顺序与按Home键相同,区别在于此时会关闭所有网络连接(iOS5.0+) 运行过程中被短信/电话等中断,则发送消息 4 若用户选择短信/电话,则发送消息 5,后续流程与按Home键相同。 若用户忽略短信/电话,则发送消息 3,回到Foreground运行状态。 运行过程中双击Home键显示任务切换器,会发送消息 4 若选择其他程序或者单击Home键返回到SpringBoard,则发送消息 5,后续流程与按Home键相同。 若再次双击Home键返回APP,则发送消息 3,回到Foreground运行状态。 通过SpringBoard或者任务切换器再次启动时,消息顺序为6-3. 从后台重新返回前台的转换过程中,即6与3消息的中间,在5.1的模拟器中显示的是Default.png,但在真实设备上显示的进入后台的screenshot。 通过URL再次启动时,消息顺序6-2-3. 程序在Background/Suspend状态时,用户双击Home键,在任务切换器中删除此程序时,APP会立即终止,不会有任何消息发送。 当程序在Suspend状态时,若内存紧张,系统也会将程序立即终止以回收内存,此时也不会有任何消息发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值