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

应用程序被终止时调用


以上这6个方法都是在Appdegate.m中自动生成的;

非运行状态---启动场景

程序启动的时候共经历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是程序运行完代码后进入挂起状态)
在这种情况下系统不会调用任何方法;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值