一个Service是在后台运行并执行一些费时的操作的业务组件,它对用户而言是不可见的。它总是在背后默默的支持整个系统的运作而提供相关的功能。一个被启动的Service在程序退出时,该Service有可能仍保持运行的状态。
Service允许各进程之间进行通信(IPC)。
使用Service的用户可以采用两种形式来安排Service完成相应的任务。
- 使用Context.startService方法启动一个Service.一个被启动的Service即使它的启动者被销毁后,该服务对象可能仍然在后台运行。采用该种方式使用服务组件适用于执行单任务且无需返回任何结果。一个被启动的Service必须在完成任务之后自行销毁(Context.stopService(..)),或者自行销毁(this.stopSelf()).
- 采用Context.bindService方法绑定一个Service.一个被绑定的Service通常提供给客户端一组相应的接口,如:发送消息,获取结果、以及在进程之间进行通信。多个组建能够同时绑定同一个Service组件,一个被绑定的Service一旦被所有其他应用程序组件取消绑定(Context.unbindService(..)),该Service的生命周期也随之结束。
Service组件能够同时提供给客户端这两种方式.一个启动的Service组件需要重写onStartCommand方法来完成相应的功能,而一个被绑定的Service则需要重写onBind方法。
Service在执行阶段并没有开辟一根新的线程,它仍然运行于主线程内,也就是说当一个Service需要连接网络或者做一些费时的操作时,就需要为它开辟一根新的线程来避免ANP(应用程序未响应),才能让主线程能够与用户畅通的进行交互;
分享到:
相关推荐
- `F7`:步入。 - `Shift + F8`:退出断点。 - `Alt + F9`:运行到光标处。 6. **搜索与替换**: - `Ctrl + F`:在当前文件中查找。 - `Ctrl + H`:在整个项目中查找类型。 - `Ctrl + Shift + F`:在所有路径...
本示例“android aidl service”是一个演示如何使用AIDL进行数据交换的实践项目,它包括两个部分:AIDLServer(服务端)和AIDLClient(客户端)。通过这两个组件,我们可以深入理解AIDL的工作原理及其在实际应用中的...
因此,TT&T启动了“BROADBAND SERVICE”项目,旨在建立一个支持多种业务、高容量、高性能的宽带网络。 【华为CX300A城域业务平台】是关键组件,它与S8500交换机协同工作,提供大规模数据交换能力,满足Triple Play...
迁移到Linux对于一些人来说,这简直是一场...尤其是对于一些刚步入Linux管理大门的管理员来说,如果不避免一些常见的错误,就容易给单位的网络或系统带来安全风险。本文将为帮助这些新手们避免这些错误提供一些建议。
借鉴海外经验,北美市场领导者First Service通过并购和提升基础配套服务,实现了增值服务市场的快速发展,权益乘数和净利润率的提升推动了ROE的大幅增长。这为中国物管企业提供了一个参考路径,即通过并购整合和业务...
这份"android课件"正是为初学者精心准备的,旨在帮助他们快速掌握Android开发的基础知识,从而步入这个充满无限可能的世界。 首先,让我们从"Android 1认识及开发环境搭建.ppt"开始。这部分内容会详细介绍Android的...
云计算融合了网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等多种计算机技术,旨在构建一个强大的计算系统,并通过SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS...
超融合架构的核心在于其SaaS(Software as a Service)、PaaS(Platform as a Service)和IaaS(Infrastructure as a Service)的三层服务模式。SaaS提供特定领域的业务平台,通过出租服务的形式供用户使用;PaaS则...
在信息技术飞速发展的今天,汽车租赁行业的管理也逐渐步入了数字化、智能化的道路。本文将围绕“carmanage.rar_MANAG車_carmanage_struct java_struct mysql_汽车租赁”这一主题,深入探讨一个基于MyEclipse、MySQL...
2005年,阿里巴巴的架构步入工业革命时期,表现层采用了WebX和服务框架,结合Spring容器和Alibaba Service框架,实现了无状态Web应用,增强了扩展性。业务逻辑层开始使用Spring和Alibaba Service框架,引入AO...
这篇中文教程将引领你步入Android的世界,帮助你构建自己的安卓应用程序。下面,我们将深入探讨这个教程可能涵盖的关键知识点,以及它们在实际开发中的应用。 首先,Android是基于Linux内核的开源操作系统,广泛...
《全面的Android初学者教程》是一份专为入门者设计的详尽教学资源,涵盖了从环境搭建到实际应用开发的全过程。...无论是想开发个人项目,还是步入Android开发的职业道路,这个教程都是一个极好的起点。
描述:“Xfire入门资料,帮你步入Web服务” 知识点解析: **Xfire概述** Xfire是一个开源的轻量级Java Web服务框架,由Codehaus组织维护。它提供了一种简单有效的方式来创建和使用Web服务,特别适合于小型项目或对...
OpenStack Essex 是 OpenStack 发展过程中的一个里程碑版本,发布于2012年4月5日,它标志着 OpenStack 从早期阶段步入了一个相对成熟的阶段。Essex 版本包含了诸多重要的组件和服务,如 Nova(计算服务)、Glance...
超融合架构的核心是将硬件资源虚拟化,提供类似SaaS(Software as a Service)、PaaS(Platform as a Service)和IaaS(Infrastructure as a Service)的服务。SaaS允许提供商为特定领域提供业务平台,以租赁形式供...
让我们一起步入Spring Cloud Eureka的世界,了解如何进行入门配置和使用。 首先,我们来理解Eureka的基本概念。Eureka Server是一个服务中心,它负责存储、检索服务信息,以及处理服务注册和服务撤销注册的请求。...
Java SSM框架是Java EE开发中的一个常用组合,由Spring、Spring MVC和MyBatis三个开源框架集成。这个综合服务信息平台项目就是...参与这样的项目有助于学生全面掌握Java EE开发技能,为将来步入职场打下坚实的基础。
《Android编程入门资料》是一份专为初学者设计的高清英文文档,旨在引导读者步入Android应用开发的世界。这份资料深入浅出地介绍了Android平台的基本概念、核心组件以及开发环境的搭建,是Android开发者入门的理想...
这本书的内容覆盖了Android开发的基础到进阶,是许多Java开发者步入Android领域的指路灯。光盘代码1-6章包含了书中前六个章节的示例代码,这些代码是理论知识的实践体现,对于学习和理解Android编程至关重要。 首先...