iOS退到后台的程序需要关闭吗?

开发人员Fraser Speirs 这两天在 Blog 发表了一篇文章 "Misconceptions About iOS Multitasking", 就提到了许多使用者(甚至是Apple Store 里Genius Bar 的客服人员) 对于iOS 的多任务处理作业有着不甚清楚或不正确的观念。
建议所有iOS 装置的使用者都可以阅读该篇文章,实际了解一下iOS 中所谓的「后台进程」到底是怎么回事!
Let me be as clear as I can be: the iOS multitasking bar does not contain "a list of all running apps". It contains "a list of recently used apps". The user never has to manage background tasks on iOS.
首先我们得搞清楚的是,iOS 中所谓的「后台驻留」并不是指「执行中的程序」,而是「最近使用过的程序」,也可以瞧瞧Apple 的知识库文章怎么写的:
按两下主画面按钮,显示最近用过的应用程序。
按两下主画面按钮后,显示的是「最近用过的应用程序」,所以别把它想成Mac OS X 中的Command + Tab 键所显示的切换程序列;你可以试试看将iPhone 关机再开机,然后按两下Home 键,应该会发现先前那些程式还是出现在那里,因为它其实是你最近使用过的程序使用记录,或像是浏览器中的浏览记录)。
如果你一个一个去清除 "后台驻留" 的程序,就像是一笔一笔删除浏览记录中的项目一样,是没有太大意义的(除非你不想让其他人看到你曾经用过什么程式,或者想杀时间、太无聊了),也不会对电力或记忆体有什么帮助。
iOS 的多任务处理其实是很聪明的,系统会自动中止在背景执行的程序,在有需要时,也会将被中止的程式suspended(注:"中止的程式"不是指关闭程序,而是指由前台转向后台的程序,程序在后台并不真正运行,不要和关闭程序混淆了) 从内存中移除。因此,iOS 装置的使用者根本就不需要担心怎么管理这些执行中或不在执行中的程序,尽管放心用、轻松玩就是了!
一般说来,所有程式进入背景后都还有5 秒的执行缓冲时间,有些程序可以要求延长到10 分钟(这些当然是由开发人员在设计与提交程式时决定和声明);
因此,在你按下Home 键后,本来的程式就会退到背景,如果它有额外的背景执行作业,超过10 分钟还是会被iOS 中止;所以,还是别担心了!
但是,Fraser 也提到了例外情况,某些特殊类型的程式是被容许在背景中持续执行的,像是会持续在背景播放音乐的程序、GPS 程序、VOIP 程序、Newsstand 以及周边配件附属的程序,不过只要这些程序不再执行动作,就会变成中止的程式,像是音乐拨完了、杂志下载完了... 因此,使用者其实也没必要太过留意这些程序。
you do not have to manage background tasks on iOS. The   system handles almost every case for you and well written audio, GPS, VOIP, Newsstand and accessory apps will handle the rest.
无论你是iOS 装置的新手、老手,甚至是店面销售或客服人员,Fraser 的结论请牢记在心
这是ios多任务后台工作的实测视频,建议大家都看一下http://www.tudou.com/programs/view/F2E2B5BWcNw/
====================1月26日更新=====================
这里重新表述一下:双击Home键出来的东东叫做最近运行程序列表,出现在这个列表里面的唯一、充分且必要条件是最近运行过的程序,跟任何别的因素没有关系。而且列表里面的图标是按最近运行的顺序排序的。这个列表里面的程序有可能是在后台驻留的,也有可能是已经完全退出的,还有可能是真后台还在继续运行的。总之,都有可能,因为是否后台跟是否出现在这个列表无关。我们可以肯定的只有一点:不在这个列表里面的程序必定是已经完全退出了的。在后台驻留但不出现在最近程序列表里面这种情况是不允许发生的。
如果你在这个列表里面手动叉掉一个程序图标,那么:
1、如果程序本来就已经完全退出,那么什么事情也不会发生,只是删掉了一个图标而已。
2、如果程序是在原生后台,那么程序会释放内存并退出,如果程序在运行系统支持的那几项原生后台任务(音乐,GPS什么的),会被终止。
IOS提供的伪后台支持后台音乐播放,GPS定位,网络语音通话,以及任务完成。也就是说仅只有这些工作可以真正在后台运行。所谓任务完成是指在程序退出的时候还有工作没处理完,比如保存进度存档,那么系统允许程序在后台继续工作,然后在完成保存进度之后停止运行。
除了上述后台功能,系统还提供一个程序快速切换的功能,这个功能也算是IOS多任务的一部分。个人观点,这个功能是IOS多任务中最先进最有用的功能。它让程序在最小化的时候仅仅是暂停运行,但并不释放内存,保持程序当前的状态,这样当你再次打开这个程序的时候,程序不需要重新从硬盘(闪存)中读出,不需要重新Load数据,而是瞬间恢复到上次退出程序时的状态,这个特性会给用户很强的多任务的感觉,仿佛程序从来没有退出过一样。而这个功能所花费的代价只是一块内存,而并不消耗cpu时间。什么意思呢?就是说快速切换并不比退出程序多耗一丝电,相反,由于再次打开程序的时候不需要读硬盘(闪存),它比退出程序再重新启动更省电!
关于程序快速切换,了解到这个程度还不够,我们还需要知道更深入一点
第一点是:为快速切换所保留的内存空间是可以被挤占的。IOS是没有内存交换空间的,它不会像Windows那样把硬盘(闪存)虚拟成内存来建立一个对应用程序来说无限的虚拟内存空间。所以,在IOS中,当前台程序内存空间不足的时候,系统会释放掉为后台程序保留的用于快速切换的内存,提供给前台程序使用。当然,如果所有能释放的内存都释放了,还不能满足前台程序的内存要求的话,系统会直接中止前台程序的运行,这就是我们为什么会看到有些程序运行中无故退出的原因。用于快速切换的内存可以被挤占这个特性是很先进的内存动态管理方式,特别适合于内存资源紧张的移动设备。这种内存管理策略的优点是在几乎不消耗任何额外的时间(CPU时间,程序在后台暂停)、空间(内存空间,可以被挤占)资源的情况下,可以提供一个性能优良的伪多任务环境。但是正因为快速切换的内存可以被挤占,所以它的缺点就是它不总是可用的。大家都有经验打开Safari的时候,有时能够直接显示上次退出时候的网页,有时候就需要重新载入,就是这个原因。
关于快速切换我们需要知道的另外一点是,在每个程序最小化的时候,系统都会给程序发送一个通知,告诉程序你现在已经被最小化了。这时候一个优雅、精良的程序会释放掉可以释放的一部分无关紧要的空间以节省内存,比如画面缓存。这个特性的意思是支持IOS多任务的程序被快速切换到后台以后占用的内存空间会比在前台运行时少。Backgrounder真后台的操作方式就是在最小化的时候阻止操作系统发送这个通知给程序,所以程序不知道自己已经在后台了,不仅是仍然占用和在前台时一样多的内存,而且还在继续运行,和在前台时一样烧电。而除了几个操作系统底层的精灵进程之外,所有程序在IOS的原生后台状态下都是暂停运行的,不烧电的。不仅如此,就算是已经在后台的程序,如果它支持IOS多任务,那么它在收到系统发出的内存不足通知的时候,它还可以继续释放更多内存。比如Safari,在刚最小化的时候,它是保留所有打开的网页的,之后如果系统发出内存不足通知,Safari就可以一个一个地释放已打开的网页所占用的内存。
关闭程序相比ios原生后台没有任何优势,两者都不会让程序在后台运行都不耗电,两者都不占内存(后台快速切换的内存可被释放),但是程序的退出和启动要比后台的快速切换多耗电且速度慢(你每次打开植物大战僵尸都要等那条草皮重新展开一次),那些喜欢双击home键调出任务栏然后一个一个关掉任务栏上所有程序的同学,你们的这种偏执行为没有任何意义。
Ios不需要刻意去关闭后台软件,是不是后台管理是完全多余的? 
当然也不是。大多数应用程序在后台时并不运行。而某些任务或服务可以继续在后台运行,直到完成它们的任务。您可以查看状态栏确定大多数这样的任务或服务:
  • 定位服务/GPS:使用时  图标会出现在状态栏中。如果应用程序在使用定位服务,您可以在应用程序中暂停此服务。
    注:您可以在设置 > 定位服务中查看最近使用定位服务的应用程序列表。
    音频回放:聆听音乐或其他音频源时, 图标会出现在状态栏中。如果应用程序在使用回放,您可以在应用程序中暂停或停止回放。无需关闭或退出应用程序。
    IP 电话(VoIP):iOS 设备可以使用常见的 VoIP 计划,例如 Skype。当有人邀请您加入 VoIP 通话时会出现提示。随即出现双层高度的状态栏,表示您正在进行通话:


小知识:
如果应用程序意外退出、不响应输入或者无法正常运行时怎么办,这时就需要你双击home键调出任务栏强制关闭应用程序了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值