《 Service具体解释(一):什么是Service》

《 Service具体解释(二):Service生命周期》

《Service具体解释(三):Service的使用》

《Service具体解释(四):绑定服务 与 通信》

《Service具体解释(五):使用Messager进行通信》

《Service具体解释(六):进程间通信-AIDL》

Service是Android中经常使用组件之中的一个,它是Android中实现程序后台执行的解决方式,它非常适合用于去执行那些不须要和用户交互且还要长期执行的任务。

这里的后台并非子线程的意思。Service默认并不会执行在子线程中。它也不会执行在一个独立的进程中,它相同执行在UI线程中,因此,不要在Service中执行耗时的操作。假设须要执行耗时的操作,能够在Service中创建子线程来完毕耗时操作。

Service的执行不依赖于不论什么用户界面,及时程序被切换到后台或者用户打开了另外一个应用程序,Service仍然能够保持正常执行。这也正式Service的使用场景。

当某个应用程序进程被杀掉时,全部依赖于该进程的Service也会停止执行。

Service 与 Thread的差别

非常多时候,你可能会问,为什么要用 Service。而不用 Thread 呢。由于用 Thread 是非常方便的,比起 Service 也方便多了,以下我具体的来解释一下。

1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。能够用 Thread 来执行一些异步的操作。

2). Service:Service 是android的一种机制,当它执行的时候假设是Local Service。那么相应的 Service 是执行在主进程的 main 线程上的。如:onCreate。onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上执行的。假设是Remote Service,那么相应的 Service 则是执行在独立进程的 main 线程上。因此请不要把 Service 理解成线程,它跟线程半毛钱的关系都没有!

上面的描写叙述还是不够直观,要想真正理解Service与Thread的差别,我么要冲android的系统机制或者功能上来分析了。

首先Service是Context的子类,所以你能够在Service中调用Context的全部方法。同一时候你也能够在不论什么有Context的地方调用Context.startService、Context.stopService、Context.bindService,Context.unbindService。来控制它,你也能够在 Service 里注冊 BroadcastReceiver。在其它地方通过发送 broadcast 来控制它,当然这些都是 Thread 做不到的。

很多其它关于Service与Thread的差别,等我们渐渐的学习Service之后。对Service有了全面的了解之后,我们就会深有体会了。

Service具体解释(一):什么是Service的更多相关文章

  1. Service具体解释(二):Service生命周期

    < Service具体解释(一):什么是Service> < Service具体解释(二):Service生命周期> <Service具体解释(三):Service的使用 ...

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

    Android服务Service具体解释(作用,生命周期,AIDL) 近期沉迷于上班,没有时间写博客了.解衣入睡,未眠.随起床写一篇博客压压惊! ##我们android系统为什么须要服务Service ...

  3. WIN7 + IIS7 Service Unavailable HTTP Error 503. The service is unavailable.

    在win7上开启IIS功能,进行网站发布. 但是开启IIS之后,打开默认网站都打不开,显示 Service Unavailable HTTP Error 503. The service is una ...

  4. 11、四大组件之二-Service高级(二)Native Service

    一.Service的分类 1.1>Android Service 使用Java编写在JVM中运行的服务 1.2>Native Service 使用C/C++完成的服务,一般在系统开始时完成 ...

  5. Android笔记二十七.Service组件入门(一).什么是Service?

    转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.Service 1.Service简单介绍     Service为Android四大组件之中 ...

  6. Oozie时出现org.apache.oozie.service.ServiceException: E0103: Could not load service classes, Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

    不多说,直接上干货! 问题详情 查看你的$OOZIE_HOME/logs 我的是/home/hadoop/app/oozie-4.1.0-cdh5.5.4/logs/oozie.log文件 [hado ...

  7. Service官方教程(4)两种Service的生命周期函数

    Managing the Lifecycle of a Service The lifecycle of a service is much simpler than that of an activ ...

  8. CentOS7 执行 service iptables save 报错 The service command supports only basic LSB actions xxxxxx

    现象描述 在 CentOS 7.6.1810 下执行 service iptables save 命令,出现如下错误: [root@test ~]# service iptables save The ...

  9. Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed

    安装docker时,自己添加了国内的hub.docker.com镜像 [root@ce-docker ~]# systemctl restart docker 出现以下报错:Job for docke ...

随机推荐

  1. 常用c++函数

    strrev(str)  (str为字符串)倒序输出字符串 floor(x),有时候也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整 ...

  2. perl学习 之:my local our

    范围声明 和全局声明类似,词法范围声明也是在编译时起作用的.和全局声明不同的是,词法范围声明的作用范围是从声明开始到闭合范围的最里层(块,文件,或者 eval--以先到者为准).这也是为什么我们称它为 ...

  3. Verilog之delay的两种用法(inter/intra)

    verilog语言中有两种延迟方式:inter-delay和intra-delay,关于inter和intra.这两个英文前缀都有“内部,之间”的意思,但又有所不同.inter表达不同事物之间,int ...

  4. 小数据池 is 和 ==的区别

    小数据池 一.小数据池 1)代码块 python程序是由代码块构成的,一个代码块的文本作为pythont程序执行的单元 官方文档: A Python program is constructed fr ...

  5. ASP.NET Web Application中使用链接文件

    最近重构一个内部的平台系统,作为一个平台,其下有几个子系统,每个子系统有自己的网站系统.而每个网站使用的是统一的风格,统一的验证机制,反馈系统,等等.所以,为了避免几个子系统中重复出现相同的资源或文件 ...

  6. 大数据学习——Storm+Kafka+Redis整合

    1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  7. MySQL5.7 MTS work线程stack

    复制现象是,slave线程状态正常,但是sql 线程不应用,所以delay越来越大,查看复制状态 mysql> show slave status\G********************** ...

  8. 如何构建一个flink sql平台

    在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法. 如果要找合适的数据集,会发现可用的有很多,但是对于线性回归来 ...

  9. 雅礼培训4.3 Problem A 【点分治】

    题目简述 一个\(N\)个节点的树,有\(M\)个炸弹分布在一些节点上,有各自的威力,随着其他点距离增大对其他点的伤害呈等差减小,直至为0 问每个点受到的伤害 题解 QAQ考场代码没处理好有些炸弹威力 ...

  10. K-D tree入门

    久仰K-D tree大名已久,终于在合适的时候遇见了合适的水题入了坑入了门 K-D tree是什么 K-D tree是什么? 按名字上翻译来就是K维的树,就是一个用来维护K维空间的点的平衡二叉树 K- ...