Android服务Service具体解释(作用,生命周期,AIDL)系列文章-为什么须要服务呢?
Android服务Service具体解释(作用,生命周期,AIDL)
近期沉迷于上班,没有时间写博客了。解衣入睡,未眠。随起床写一篇博客压压惊!
##我们android系统为什么须要服务Service呢?
在某些场景下。我们须要应用程序长期在后台跑着。对吧!可是呢,我们的应用已经退到后台了。
比方说。我们的播放音乐,我们希望能够退到后台以后,还能够屁颠屁颠地继续播放是吧。也许,你会说,我们起一下子线程播放,即使我们退出了应用,这个线程还是在跑的呀。也就是说,开启一个子线程。也能够没有界面地在后台跑嘛!
那么。我们先要了解一下在android系统下各进程的优先级了!
先来看几个专有名词吧:
- 前台进程:你能够看到应用的界面,而且能够和它交互。这就是前台进程啦!
- 可视进程:你能够看到这个进程。可是不能够操作,这也是和前台进程的差别。就是不能够操作。
- 服务进程:长期于后台运行。没有界面也在跑的进程就叫做服务进程啦。
- 后台进程:所谓的后台进程就是程序最小化,本质上是没有退出的。
- 空进程:程序程序的组件没有不论什么的活动,也就是挂了嘛!
知道了前面的几大专用名词。我们要知道的是内存的大小是有限制的。也就是设备的大小是有限的。android操作系统须要合理地管理这些资源,依据优先级。保证用户能够使用等等。所以须要对这些进程进行一个优先级排列,当资源不够用的时候呢,就会去杀掉,或者说清空低级别的进程。
所以有了:
前台进程>可视进程>服务进程>后台进程>空进程
好,当你看到这里的时候,我们回到前面的。开一个子线程。运行一些没有界面也不会退出的任务。那么我们这样去操作:开启一个子线程以后。我直接最小化,这个程序,它是不是就变成了一个后台进程呢?对吧,当资源不够用的时候。它呢就把这个后台进程杀死。而且,这个子线程再也不会起来了。
可是,服务不一样,首先,比后台进程的优先级高。所以不那么easy杀死,另外,服务真的由于资源不够而被杀死了。等到资源释放够了,或者其它东西运行完了,够资源了,服务又自己主动地跑起来了!
所以说,我们为什么要用服务呢?
两点原因:
- 服务能够长期在后台运行,即使没有界面,优先级比較高,不easy被杀死。
- 即使服务被杀死了,也能够自己主动地被操作系统启动起来。
网易云视频:
社区站点:
Android服务Service具体解释(作用,生命周期,AIDL)系列文章-为什么须要服务呢?的更多相关文章
- Service 简介 启动方式 生命周期 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Android四大基本组件介绍与生命周期
Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...
- 【转】Android四大基本组件介绍与生命周期
转自:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Android四大基本组件分别是Activity,Serv ...
- Android四大基本组件介绍及生命周期
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一.了解四大基本组件 Activity ...
- Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
- Android应用程序中Activity的生命周期
Android应用程序中Activity的生命周期 对于Android来说Activity的生命周期是非常的重要,尤其是对于新学者来说,只有充分了解了Activity的生命周期,才能写出优良用户体验的 ...
- 【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式
1.0 Android是使用任务(Task)来管理活动的,活动就像栈一样堆放着在一起. 每个活动的生命周期最多可能会有四种状态: 1.1 运行状态 位于栈顶 1.2 暂停状态 不在栈顶但在界面上仍处于 ...
- Android学习总结(二)——Service基本概念和生命周期
好了,前面我们已经学习了Activity的知识,相信大家也有一定的理解,但是还是不能放松,Android四大组件,我们才学习了一个而已,接下我们继续学习Service.计划总结如下内容: 一.Serv ...
- Android Activity、Service、BroadcastReceiver 的生命周期
Activity.Service.BroadcastReceiver这三个组建是Android开发中最常使用到的组件,在它们的生命周期的各个阶段我们需要针对性的做些事情,了解这些组件的生命周期有利于我 ...
随机推荐
- gerrit工具-workflow
gerrit-workflow
- vue数组对象修改触发视图更新
直接修改数组元素是无法触发视图更新的,如 this.array[0] = { name: 'meng', age: 22 } 修改array的length也无法触发视图更新,如 this.array. ...
- MAC使用IDA PRO远程调试LINUX程序
1 背景 在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪 ...
- font-family 定义的最后为什么要加一句sans-serif
定义font-family时,最好在最后加一个sans-serif,这样如果所列出的字体都不能用,则默认的sans-serif字体能保证调用; W3C建议字体定义的时候,最后以一个类别的字体结束,例如 ...
- spring的applicationContext.xml如何自动加载
一个web工程自动加载的配置文件只有web.xml,想要加载其他.xml必须在web.xml里面进行配置. 用spring的时候需要一个bean容器来管理所有的bean,所有bean默认是写在appl ...
- Android横竖屏切换解决方案
Android横竖屏切换解决方案 首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidde ...
- python模块导入
官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: 用于执行的可执行程序文件 ...
- linux--lsof
lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控制协议 ...
- DataTable 去重合并
//合并 dt.Merge(dt2); //去重 dt = dt.AsDataView().ToTable(true);
- 【转载】无需图片,使用CSS3实现圆角按钮
原文地址:http://www.open-open.com/home/space-37924-do-blog-id-5789.html 首先来看看效果: 事例HTML代码: <a href=&q ...