iOS 应用状态详解

iOS 与其他操作系统有很多不同,当 App 不在当前运行时,可以使用的资源特别有限。

虽说 App 传统上讲只有两种状态,前台和后台。但是这种说法是不太清晰的。

如果要清楚的讲明白 App 在不同状态下的异同点,那么可以从三个维度去看:

  • 是否可见。App 是否显示在屏幕上
  • 能不能接收事件,比如触摸、摇晃手机等
  • 能不能执行代码。这个是我们比较关心的

App 的 5 中状态

一个 App ,不管是处于什么情况下,总共的状态有五种,分别是:

  • 没有运行状态
  • 活跃
  • 不活跃
  • 后台运行
  • 暂停运行

后面会详细的讲解某个状态以及状态之间的转换。

非运行状态

很多 App 都是这个状态,在此状态下,设备的 RAM 中没有加载该 App 的任何代码。

App 会长期地处于该中状态。在这种状态下,App 肯定是不会显示在屏幕上的,并且也不能接受事件,当然也不能执行代码。简单的理解为死掉的即可。

活跃状态

当 App 在运行时,就是此种状态。

此时 App 可以接收事件、运行代码、显示内容。这种状态即平时讲的前台运行。

非活跃状态

App 在某些情况下,会进入到该状态。

在这种状态下,App 的内容有显示在屏幕上,并且能够执行代码,但是无法接收事件。

App 一般在下列情况下,会进入这个状态:

iOS 设备接收到 短信、电话、通知等,也就是说对于用户讲,App 本身不是第一个被关注的内容。

这种情况下,App 的内容也显示在屏幕上,以一种模态的形式展现。

后台运行

当用户使用 Home 键或者其他方式切换到另一个 App 或进入桌面后。App 将进入后台运行模式。

无法显示内容,无法接收事件,但是能够执行代码。可执行代码的时间有限制。

一般来说,App 在后台运行这个状态可以长达 10 秒,然后就会被系统调整到下一个状态,暂停状态

暂停状态

暂停状态是 App 最多一个一个状态,表示 App 的一些相关数据仍存在于内存中,但是 App 被悬挂起来,相当于 App 当时的状态被封停了。

在这个状态下,App 可以迅速的返回到活跃状态。

如果长期处于这个状态,并且系统在内存不够用时,会将处于暂停状态的 App 彻底杀死,转换到非运行状态。

用户也可以通过手动杀死的方式,将 App 直接置于该种状态。

常见的状态转换

状态之间是可以相互转换的,下面简述几种常见的方式。

当一个 App 在非运行状态时,用户可以通过点击 App 的 Icon 或者 App 的通知来打开一个 App。

需要注意的是,即使 silent 通知,在这种状态下也是无法唤醒 App 的。

然后 App 进入到活跃状态。

当用户在使用 App 的过程中,会发生一些事件,然后 App 会进入非活跃状态。比如:

收到一条短信、来电时。
收到一个到期的提醒事项时。
收到一个通知,并且该通知是属于那种弹出模式时。
用户双击 Home 键,进入到 App 切换界面。

用户一般不会在这个状态下停留很久的时间,当阻碍 App 成为用户第一焦点的其他消失或被用户处理后,App 马上恢复到活跃状态。

用户摁下 Home 键或者切换到别的 App 时,App 将进入到后台运行状态,在这种状态下,只能在有限的时间内做一些简单的工作,然后 App 将会休眠,进入到暂停状态。

在暂停状态下,App 是什么都干不了的,只能等待用户主动唤醒或者 silent 通知。

休眠的 App 在收到 silent 通知时,将会进入后台状态,又可以在有限的时间内做一些工作。

如果使用新闻类 App ,或者系统的邮箱服务时,可以发现,有时候 App 明明没有被打开过,但是在打开时,内容已经做了更新。
这里就用到了 silent 推送,App 接收到 silent 推送然后进入后台运行模式,做网络请求,得到数据,然后更新 model。这样子用户在下次打开 App 时,将会看到已经更新好的数据,而不是再去做网络请求,这样子很好的提升了用户体验。

当 App 在休眠状态太久,并且更多的 App 进入到休眠状态时,系统的内容将不够用,因为 App 在休眠时,为了能够快速的将其激活,是将其放在内存中的。

这样子,用户就感觉好像使用的 App 没有被关闭,一直在运行。

内存不够用时,休眠时间比较长的 App 会被清退出内存,进入到非运行状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容