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. GCC 中 -L、-rpath和-rpath-link的区别

    GCC 中 -L.-rpath和-rpath-link的区别 来源 http://blog.csdn.net/q1302182594/article/details/42102961 关于这3个参数的 ...

  2. Tomcat学习笔记(三)

    Tomcat连接器 tomcat连接器是tomcat的一个核心组件,在tomcat4中的实现原理如下 1.实现Connector接口 2.创建Request对象 3.创建Response对象 tomc ...

  3. 通过VS2010性能分析来查找代码中那些地方最损耗资源

    在编写完成一个程序后,大家都比较关心程序的性能如何,想把程序优化得更好.很多时候凭个人直觉来优化程序是件非常不靠普的事情,即使你是一个优秀的开人员也很难准确地判断程序中那些出现问题.VS2010提供了 ...

  4. [bzoj1051][HAOI2006]受欢迎的牛——强连通分量

    题目大意: 给定一个有向图,求能够被其他所有点访问到的点的个数. 题解: 首先,这个题我在洛谷上AC了,但是bzoj上WA,不知道为什么. 说一下解法. 首先,我们进行scc分解,可以知道, 如果一个 ...

  5. 电子商务模式B2C/C2C/B2B/O2O

    1.什么是B2C B2C是英文Business-to-Consumer(商家对客户)的缩写,而其中文简称为商对客.商对客是电子商务的一种模式.这种形式的电子商务一般以网络零售业为主,主要借助于互联网开 ...

  6. 三、第一个cocos2d程序的代码分析

    http://blog.csdn.net/q199109106q/article/details/8591706 在第一讲中已经新建了第一个cocos2d程序,运行效果如下: 在这讲中我们来分析下里面 ...

  7. VS2013 Sqlite3 操作指令

    extern "C"{ #include "sqlite3.h" }; #pragma comment(lib,"sqlite.lib") ...

  8. git使用教程2-更新github上代码【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/git/ 前言 前面一篇已经实现首次上传代码到github了,迈出了装逼第一步,本篇继续 ...

  9. (8)java基础知识-字符编码

    这块比较乱待整理... http://www.regexlab.com/zh/encoding.htm 字符编码 将各种文字.图形.标点.数字整合在一个集合叫做字符集. 把这些字符集按照不用规则进行编 ...

  10. 给出一个string字符串,统计里面出现的字符个数

    给出一个string字符串,统计里面出现的字符个数 解决方案: 使用algorithm里面的count函数,使用方法是count(begin,end,'c'),其中begin指的是起始地址,end指的 ...