iOS App由生到死的过程

万物都会经历由生到死的过程,人不例外,当然App也是如此,此谓App的声明周期。具体来说App的声明周期就是App从启动到关闭这一过程中发生的一系列事件。由于iOS4中引入了多任务功能,App能够在后台执行,与iOS3的声明周期并不相同。在此,我们只讨论iOS4的声明周期。
用户点击主界面上相应App的图标来启动App。点击之后,依次发生了两个动作:

  • 显示启动画面
  • 调用main方法启动App

iOS4上,App的状态共分为5种:

  • Not running:App没有启动。
  • Inactive:App在前台运行,但当前不接收操作事件(虽然它可能在执行某些代码)。这种状态通常只用于在不同状态切换时的过渡,一般停留时间较短,例外的情况是,在锁屏状态或系统提示用户响应某些事件(如接听电话或收到短信),可以长时间停留在该状态。
  • Active:App在前台运行,并且接收操作事件。
  • Background:App在后台运行,并且正在执行代码。大多数App在进入Suspended状态之前会进入该状态。停留在该状态的时间长短将视执行代码的时间而定。
  • Suspended:App在后台运行,但没有执行代码。在低内存情况下,系统将在不发出任何通知的情况下终止该App,以为前台App腾出更多的内存。

知道了App的状态后,我们来了解下App是如何在这些状态之间进行切换的:
用户将一个在后台运行的应用调回前台时,系统首先将App转换到Inactive状态,然后再转换到Active状态。这个过程将调用application delegate中的两个方法:

  • applicationWillEnterForeground
  • applicationDidBecomeActive

这里写图片描述

后台执行是iOS 4新增加的功能,在某些情况下,你可能想禁用该功能,虽然一般不鼓励这么做。操作方法是在Info.plist文件里面添加UIApplicationExitsOnSuspend属性,并将其值设置为YES。此时,App就只剩下Not running、Inactive、active三种状态,永远不会进入Background和Suspended状态。
当有来电、收到短信、日程提醒时,处理Active状态的应用将会临时进入Inactive状态。当用户决定接受或忽略来电、信息和日程时,App的状态将发生改变。

  • 如果用户忽略来电、短信和日程,将重新进入Active状态
  • 如果用户接受来电、短信和日程,将转入Suspended状态

此时,也会触发application delegate的三个方法:

  • applicationWillResumeActive
  • applicationDidBecomeActive
  • applicationDidEnterBackground

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值