关于《第一行代码Android》对于后台阐释的补充

    《第一行代码Android》第一版第9章大标题内容是“后台默默的劳动者,探究服务”,章节引言部分首先介绍了后台的相关知识,提到“在这三大智能手机操作系统中,IOS是不支持后台的,当应用程序不在前台运行时就会进入到挂起状态。Android则是沿用了Symbian的老习惯,加入了后台功能,这使得应用程序即使在关闭的情况下仍然可以在后台继续运行。而Windows Phone则是经历了一个由不支持到支持后台的过程,目前Windows Phone8系统也是具备后台功能的。”

    关于IOS是不支持后台的结论我认为是不严谨的,一个最简单的例子就是,应用IOS系统的苹果手机打开音乐播放器之后按下Home键,回到主界面或者再打开qq,是一样可以实现边听音乐边聊qq的。而标红部分文字描述我认为也是有误的,服务不依赖于任何用户界面不假,但服务却依赖于创建服务时所在的应用程序进程,当某个应用程序进程被杀掉,依赖于该进程的服务也会停止。作者在接下来有对这一点做相关描述,但标红部分确实与后面所描述内容相矛盾,会给读者带来误导。

    再回到IOS后台的问题,IOS确实不像Android是完全支持后台的,但也不是完全不支持后台,前面所举的边听音乐边聊qq的例子就很好的论证了这一点。本身不是做IOS研究的,所以在查阅了相关资料之后,觉的对于IOS后台问题较为准确的描述应该是IOS支持“伪后台”。

    IOS应用程序一般来讲有5个状态,停止运行、不活动、活动、后台、挂起。

    停止运行:应用程序已经终止,或者还未启动。

    不活动:应用程序处于“使用中”的状态。

    活动-app处于“使用中”的状态。

    后台:应用程序不再屏幕上显示,但它仍然在执行。

    挂起:应用程序仍然驻留内存但不再执行代码。

    当按下Home键时,应用程序从活动状态转为后台,绝大部分应用程序几秒后就从后台转为挂起,当内存不足时,系统会优先回收挂起状态的应用程序。不过自从IOS 4开始发展至今,IOS中应用可以通过实现接口使得应用在后台运行10分钟或者声明为需要在后台运行从而不限时的运行下去。IOS 7提供的后台接口模式主要有以下几种:

    1、Background Audio:这是后台的音频,某些应用为了实现后台运行的功能,在后台播放无声音乐,审核可能会钻篓子通过。

    2、Location Services:这是后台的定位,系统会拥有统一页面进行管理。

    3、VOIP:后台语音服务,类似Skype通话应用需要调用,可进行后台的语音通话。

    4、Newsstand:报刊杂志后台自动下载更新,其能够自动实时更新。

    5、Background Task  Completion:这个接口早在iOS 4时候便拥有,其可以供任意类型的APP使用,不过在旧系统中,这个接口的后台限制运行时间仅为10分钟。

    6、 Remote Notification:以往聊天类应用接受推送后点进去需要再收一次信息,这情况在QQ、微信等应用上最为明显。不过拥有了这个接口后,这情况将不复存在,以后推送将能够直接启动后台任务。

    7、Background Transfer Service,后台上传下载。iOS最接近传统多任务的后台接口,可供任意类型的app调用,无时间限制。

    IOS这种伪后台机制为的是最大限度的节省手机内存,提高了手机系统运行流畅度,且节电,但Android支持后台也有其独有的好处,正如《第一行代码Android》中所讲,我们不讨论孰优孰劣,既然选择做Android对于Android的后台机制就需要有一定了解,然后掌握好服务的相关知识。

   PS: 本文指出的对于《第一行代码Android》中部分描叙有异议的地方只代表我个人的一点观点,对各方都无恶意,我只是一个热爱Android开发的程序小白,《第一行代码Android》是我的启蒙书,个人非常喜欢这本书,作者郭霖更是我佩服的Android大牛,也一直关注他的CSDN博客,听闻这本书已经出第二版,也希望《第一行代码Android》可以做的尽善尽美,这是所有Android小白之福!

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值