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。
发布了38 篇原创文章 · 获赞 5 · 访问量 9051

猜你喜欢

转载自blog.csdn.net/zj382561388/article/details/103212703