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. spring in action 学习笔记四:bean的生命周期

    bean 的生命周期分为:一个是ApplicationContext的容器的bean的生命周期,另一个是BeanFactory容器的生命周期. 首先介绍一下:ApplicationContext的容器 ...

  2. centos 7 服务器网卡做bond

    前期环境准备 [root@ /root] alibaba cloud#cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[root@ ...

  3. 寻找已排序的连个数组的第k个元素

    A,B是两个已经从小到大排序好了的数组,球这两个数组合并后的第k个元素. 很简单的想法,根据定义,把两个数组合并到一起,然后排序,然后就能得到了. 但是这样的复杂度是nlogn 还有就是用归并的思想, ...

  4. Distributed Cache Coherence at Scalable Requestor Filter Pipes that Accumulate Invalidation Acknowledgements from other Requestor Filter Pipes Using Ordering Messages from Central Snoop Tag

    A multi-processor, multi-cache system has filter pipes that store entries for request messages sent ...

  5. Python’s super() considered super!

    如果你没有被Python的super()惊愕过,那么要么是你不了解它的威力,要么就是你不知道如何高效地使用它. 有许多介绍super()的文章,这一篇与其它文章的不同之处在于: 提供了实例 阐述了它的 ...

  6. python enumerate元素的时候可以获取下标,并且可以指定开始的下标值。

    list=["a","b","c","d","e"] for i,item in enumerate ...

  7. 左侧菜单栏右侧内容(改进,有js效果)

    (如有错敬请指点,以下是我工作中遇到并且解决的问题)上一篇文章是简洁版 这是上一篇文章的改进. 上一篇文章的左侧菜单是没有子目录的. 这是效果图: 左侧菜单代码: <div class=&quo ...

  8. Couchbase应用示例(初探)

    安装过程:略. 1. 新建Web项目 从NuGet获取并引用: CouchbaseNetClient,添加后引用列表显示为 : Couchbase.NetClient 2. 需要对项目添加引用,这里我 ...

  9. 使用bottle进行web开发(1):hello world

    为什么使用bottle?因为简单,就一个py文件,和其他模块没有依赖,3000多行代码. http://www.bottlepy.org/docs/dev/ 既然开始学习,就安装它吧. pip3 in ...

  10. functools模块方法学习(1):partial

    函数的partial应用 典型的,函数在执行时,要带上所有必要的参数进行调用.然后,有时参数可以在函数被调用之前提前获知.这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调 ...