关于《第一行代码Android》对于后台阐释的补充
来源:互联网 发布:双色球密码算法 编辑:程序博客网 时间:2024/05/04 19:46
《第一行代码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小白之福!
- 关于《第一行代码Android》对于后台阐释的补充
- Android第一行代码学习笔记七----后台服务
- Android的多线程---《第一行代码Android》
- Android第一行代码
- Android Fragment的使用 《第一行代码》
- 【第一行代码】Android的广播机制
- MSDN 关于锁的阐释
- 第一行代码笔记,第一章-------开启你的第一行Android代码
- 第一行代码第一章——你的第一行Android代码
- 《第一行代码Android》读书笔记
- 《第一行代码Android》摘要
- 第一行代码-----Android 第一章
- 第一行代码Android-------Activity
- 《Android第一行代码》笔记
- 《第一行代码Android》笔记
- Android第一行代码读书笔记
- Android第一行代码小结
- 《第一行代码--android》笔记
- 如何辨别app是原生开发的还是h5开发的
- js字符串定义与操作小结
- 数据结构实验八 二叉树
- 【PHP高级】smarty模板
- 荒野求生-野生程序员的起跑线
- 关于《第一行代码Android》对于后台阐释的补充
- MYSQL学习心得(2) --使用MySQL的LAST_INSERT_ID
- 简单工厂模式
- Android中Application单例模式的正确写法
- 国家版权局再出重拳,原创作者要注意啦!
- FastReport设计视图代码记录
- Android数据存储(SqLite数据库存储)
- 存储过程传表参数批量提交---update from
- 趋势OFFICESCAN忘记卸载密码时如何卸载客户端