iOS - 程序生命周期

程序的5种状态

状态名解释
Not running应用还没启动或者应用发生中断
Inactive应用正在前台运行(不接收事件)
Active应用正在前台运行(接收事件)
Background应用处于后台运行( 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态。
Suspended程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存

UIApplicationDelegate协议方法

方法解释
-(void)applicationWillResignActive:(UIApplication *)application应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了。
方法被调用会发送UIApplicationWillResignActiveNotification通知。
-(void)applicationDidBecomeActive:(UIApplication *)application应用进入活动状态(接收消息或事件),
方法被调用会发送UIApplicationDidBecomeActiveNotification通知。
-(void)applicationDidEnterBackground:(UIApplication *)application应用进入后台调用(设置后台继续运行)
-(void)applicationWillEnterForeground:(UIApplication *)application应用将要进入前台调用
-(void)applicationWillTerminate:(UIApplication *)application应用将要退出调用(保存数据,退出前清理,需要设置UIApplicationExitsOnSuspend的键值)
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application应用被终止前调用(内存清理,方式应用被终止)
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions应用载入后调用。
如果我们的应用程序被系统的一个特殊行为所唤醒,launchOptions 字典包含应用被启动的信息。
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url应用打开URL时调用
-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions应用启动但还没进入活动状态

过程描述

一个 app 第一次启动时会依次调用 willFinishLaunchingWithOptions、didFinishLaunchingWithOptions、applicationDidBecomeActive三个方法,app 状态由 Not running -> Inactive -> Active。

当 app切出去的时候,有三种情况

  1. 切换到多任务窗口,会调用 applicationWillResignActive 方法,app 状态 Active -> Inactive,再切换回来会调用 applicationDidBecomeActive 方法。
  2. 直接退出到 home 、进入其他应用时,依次调用 applicationWillResignActive 和 applicationDidEnterBackground 方法,状态 Active -> Inactive -> Backgroud。
  3. 中断发生,如锁屏和电话接入,依次调用 applicationWillResignActive 和 applicationDidEnterBackground 方法。当 app 被切回时,依次调用 applicationWillEnterForeground 和 applicationDidBecomeActive 方法。当 app 被退出时,调用 applicationWillTerminate。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值