关闭

iOS App由生到死的过程

标签: iosapp
257人阅读 评论(2) 收藏 举报

万物都会经历由生到死的过程,人不例外,当然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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19415次
    • 积分:463
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:5篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论