首页 > 代码库 > iOS 应用程序生命周期
iOS 应用程序生命周期
刚买了关东升老师的ios书,来记录一下自己感觉有用的东西;
作为应用程序的委托对象,Appdeletage在应用程序的生命周期的不同阶段会调用不同的方法。
首先说一下ios应用的五中状态:
- Not Running (非运行状态)应用程序未运行或者已经终止
- Inactive (前台非活动状态)应用程序进入前台状态,但是还不能接受事件处理
- Active (前台活动状态)应用程序进入前台,能接受事件
- Background (后台状态)应用程序进入后台,依然能够执行代码。如果有可执行代码就会继续执行,如果没有,会进入挂起状态
- Suspended (挂起状态) 不能执行代码,如果系统内存不够应用程序会被终止
ios应用程序在这些状态转换过程中,iOS系统会调用Appdelegate的一些方法,并且发送通知。
这里主要说一些主要的方法;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
程序启动并进行初始化是调用- (void)applicationWillResignActive:(UIApplication *)application
程序从活动状态进入非活动状态的时候调用
- (void)applicationDidEnterBackground:(UIApplication *)application
程序进入后台时调用该方法
- (void)applicationWillEnterForeground:(UIApplication *)application
程序进入前台但是还未处于活动状态时调用该方法
- (void)applicationDidBecomeActive:(UIApplication *)application
程序进入前台并处于活动状态时调用
- (void)applicationWillTerminate:(UIApplication *)application
应用程序被终止时调用
非运行状态---启动场景
程序启动的时候共经历3个状态
Not running->Inactive->active
在Not running->Inactive 阶段 系统会调用
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
在Inactive->active阶段 系统会调用
(void)applicationDidBecomeActive:(UIApplication *)application
点击Home键---应用退出场景
这种情况下又分两种情况:
1、可以在后台挂起
2、不能在回台挂起
先说第一种情况共经历4种状态
Active->Inactive->background->Suspended
Active->Inactive 阶段调用
(void)applicationWillResignActive:(UIApplication *)application
Inactive->background阶段
这个阶段不会调用上面列出的方法
background->Suspended阶段调用
(void)applicationDidEnterBackground:(UIApplication *)application
第二种情况
Active->Inactive->background->Suspended->Not running 五中状态
Active->Inactive 系统不会调用上述方法,这里与第一种情况不同
Inactive->background阶段
这个阶段不会调用上面列出的方法
background->Suspended阶段调用
(void)applicationDidEnterBackground:(UIApplication *)application
Suspended->Not running 调用(void)applicationWillTerminate:(UIApplication *)application
挂起重新运行场景
Suspended->background->Inactive->Active
Suspended->background 这里不会调用上述方法
background->Inactive调用
applicationWillEnterForeground:(UIApplication *)application
Inactive->Active调用
(void)applicationDidBecomeActive:(UIApplication *)application
内存清除---应用场景终止
该应用程序处于后台运行(挂起状态),如果系统发出低内存警告的时候,为了满足其他应用对内存的需求,就会清除内存终止程序。
background->Suspended->Not running(background->Suspended是程序运行完代码后进入挂起状态)
在这种情况下系统不会调用任何方法;
iOS 应用程序生命周期
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。