Android服务Service具体解释(作用,生命周期,AIDL)

近期沉迷于上班,没有时间写博客了。解衣入睡,未眠。随起床写一篇博客压压惊!

##我们android系统为什么须要服务Service呢?

在某些场景下。我们须要应用程序长期在后台跑着。对吧!可是呢,我们的应用已经退到后台了。

比方说。我们的播放音乐,我们希望能够退到后台以后,还能够屁颠屁颠地继续播放是吧。也许,你会说,我们起一下子线程播放,即使我们退出了应用,这个线程还是在跑的呀。也就是说,开启一个子线程。也能够没有界面地在后台跑嘛!

那么。我们先要了解一下在android系统下各进程的优先级了!

先来看几个专有名词吧:

  • 前台进程:你能够看到应用的界面,而且能够和它交互。这就是前台进程啦!

  • 可视进程:你能够看到这个进程。可是不能够操作,这也是和前台进程的差别。就是不能够操作。

  • 服务进程:长期于后台运行。没有界面也在跑的进程就叫做服务进程啦。
  • 后台进程:所谓的后台进程就是程序最小化,本质上是没有退出的。
  • 空进程:程序程序的组件没有不论什么的活动,也就是挂了嘛!

知道了前面的几大专用名词。我们要知道的是内存的大小是有限制的。也就是设备的大小是有限的。android操作系统须要合理地管理这些资源,依据优先级。保证用户能够使用等等。所以须要对这些进程进行一个优先级排列,当资源不够用的时候呢,就会去杀掉,或者说清空低级别的进程。

所以有了:

前台进程>可视进程>服务进程>后台进程>空进程

好,当你看到这里的时候,我们回到前面的。开一个子线程。运行一些没有界面也不会退出的任务。那么我们这样去操作:开启一个子线程以后。我直接最小化,这个程序,它是不是就变成了一个后台进程呢?对吧,当资源不够用的时候。它呢就把这个后台进程杀死。而且,这个子线程再也不会起来了。

可是,服务不一样,首先,比后台进程的优先级高。所以不那么easy杀死,另外,服务真的由于资源不够而被杀死了。等到资源释放够了,或者其它东西运行完了,够资源了,服务又自己主动地跑起来了!

所以说,我们为什么要用服务呢?

两点原因:

  • 服务能够长期在后台运行,即使没有界面,优先级比較高,不easy被杀死。
  • 即使服务被杀死了,也能够自己主动地被操作系统启动起来。

网易云视频:

社区站点:

Android服务Service具体解释(作用,生命周期,AIDL)系列文章-为什么须要服务呢?的更多相关文章

  1. Service 简介 启动方式 生命周期 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  3. 【转】Android四大基本组件介绍与生命周期

    转自:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Android四大基本组件分别是Activity,Serv ...

  4. Android四大基本组件介绍及生命周期

    Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一.了解四大基本组件 Activity ...

  5. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  6. Android应用程序中Activity的生命周期

    Android应用程序中Activity的生命周期 对于Android来说Activity的生命周期是非常的重要,尤其是对于新学者来说,只有充分了解了Activity的生命周期,才能写出优良用户体验的 ...

  7. 【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式

    1.0 Android是使用任务(Task)来管理活动的,活动就像栈一样堆放着在一起. 每个活动的生命周期最多可能会有四种状态: 1.1 运行状态 位于栈顶 1.2 暂停状态 不在栈顶但在界面上仍处于 ...

  8. Android学习总结(二)——Service基本概念和生命周期

    好了,前面我们已经学习了Activity的知识,相信大家也有一定的理解,但是还是不能放松,Android四大组件,我们才学习了一个而已,接下我们继续学习Service.计划总结如下内容: 一.Serv ...

  9. Android Activity、Service、BroadcastReceiver 的生命周期

    Activity.Service.BroadcastReceiver这三个组建是Android开发中最常使用到的组件,在它们的生命周期的各个阶段我们需要针对性的做些事情,了解这些组件的生命周期有利于我 ...

随机推荐

  1. gerrit工具-workflow

    gerrit-workflow

  2. vue数组对象修改触发视图更新

    直接修改数组元素是无法触发视图更新的,如 this.array[0] = { name: 'meng', age: 22 } 修改array的length也无法触发视图更新,如 this.array. ...

  3. MAC使用IDA PRO远程调试LINUX程序

    1 背景 在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪 ...

  4. font-family 定义的最后为什么要加一句sans-serif

    定义font-family时,最好在最后加一个sans-serif,这样如果所列出的字体都不能用,则默认的sans-serif字体能保证调用; W3C建议字体定义的时候,最后以一个类别的字体结束,例如 ...

  5. spring的applicationContext.xml如何自动加载

    一个web工程自动加载的配置文件只有web.xml,想要加载其他.xml必须在web.xml里面进行配置. 用spring的时候需要一个bean容器来管理所有的bean,所有bean默认是写在appl ...

  6. Android横竖屏切换解决方案

    Android横竖屏切换解决方案 首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidde ...

  7. python模块导入

    官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: 用于执行的可执行程序文件 ...

  8. linux--lsof

    lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控制协议 ...

  9. DataTable 去重合并

    //合并 dt.Merge(dt2); //去重 dt = dt.AsDataView().ToTable(true);

  10. 【转载】无需图片,使用CSS3实现圆角按钮

    原文地址:http://www.open-open.com/home/space-37924-do-blog-id-5789.html 首先来看看效果: 事例HTML代码: <a href=&q ...