Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务的开发比较简单,如下:
第一步:继承Service类
public class SMSService extends Service { }
第二步:在AndroidManifest.xml文件中的<application>节点里对服务进行配置:
<service android:name=".SMSService" />
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。
如果打算采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。
如果打算采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,接着调用onDestroy()方法。如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法。
分享到:
相关推荐
StreamX是一款专为大数据流处理打造的一站式开发与运维平台,其提供的streamx-console-service-1.2.2-bin.tar.gz是一个压缩包,包含了StreamX控制台服务的可执行文件及其相关依赖。这个版本是1.2.2,表明它是经过多...
`moffice-service-base` 则是基础服务包,它提供了一些通用的服务和基础类,为`moffice-service` 提供支持。这个库可能包括了数据模型、异常处理、日志记录、配置管理等方面的基础组件,帮助开发者更好地管理和组织...
PowerShell重启服务(Restart-Service),使用PowerShell可以很方便的操作Windows系统服务,比如实现自动重启服务。本文就介绍如何使用PowerShell来重启服务,以及一些相关的内容。PowerShell中重启服务的cmdlet是...
【华为服务器引导光盘镜像-FusionServer Tools-ServiceCD2.0-V131】是华为公司为FusionServer系列服务器提供的一款重要的维护和管理工具集合,它包含了一系列用于安装、配置、诊断和维护华为服务器的软件工具。...
- 使用`yum install self-service-password`命令安装Self-Service Password应用。 3. **导入存储库密钥**: - 运行`rpm --import https://ltb-project.org/wiki/lib/RPM-GPG-KEY-LTB-project`命令来导入存储库的...
其次,`apollo-adminservice-1.6.1.jar`是 Apollo-adminservice 的主执行文件,包含了所有服务运行所需的类和依赖库。这个JAR文件可以通过Java命令行或容器化工具(如Docker)启动,以提供配置服务。启动命令通常会...
首先,"Rest-Web-Service-Client_v3.6.0.crx"是一个Chrome浏览器扩展,用于测试和调试RESTful Web服务。CRX文件是Chrome浏览器的插件或扩展的打包文件格式,它包含了一款扩展的所有必要资源,如HTML、CSS、...
【华为HCSA-presales-service认证】华为售前服务解决方案方向的HCSA认证主要涉及华为的数通售前知识,以及服务解决方案的相关内容。这个认证涵盖了云计算、虚拟化、项目拓展、服务流程、容灾备份等多个方面,旨在...
在部署apollo-adminservice-1.5.0时,首先需要解压"携程apollo-adminservice-1.5.0-github.zip",然后找到apollo-adminservice-1.5.0.jar,这通常是服务的主程序文件。同时,scripts目录可能包含了启动和停止服务的...
标题中的"axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2"指的是两个与Apache Axis2相关的Eclipse插件:Axis2代码生成插件和Axis2服务插件,它们是版本1.6.2的。Apache Axis2是一个流行的...
`apollo-adminservice-1.7.0-github.zip`是一个包含Apollo AdminService 1.7.0版本源码和相关资源的压缩包,源自GitHub。 Apollo AdminService是Apollo系统的核心组件之一,主要负责处理客户端的配置请求,提供配置...
标题“axis2-eclipse-service-plugin-1.5.4”指的是Axis2 Eclipse Service Plugin的1.5.4版本。这是一个专门为Eclipse IDE设计的插件,用于帮助开发人员在Eclipse环境中创建、部署和管理基于Apache Axis2的Web服务。...
"apollo-configservice-1.4.0-github.zip"是Apollo配置服务的1.4.0版本,可以从GitHub的官方仓库下载,这为开发者提供了一个方便的途径,特别是对于网络环境不佳的地区,可以直接下载此压缩包进行本地部署。...
**PyPI 官网下载 | module-build-service-1.3.20.tar.gz** PyPI(Python Package Index)是Python编程语言的官方软件仓库,它为开发者提供了发布、分享和安装Python模块的平台。在PyPI上,我们可以找到各种开源的...
【BODAS-service 3.5 Setup.zip】这个压缩包文件是针对BODAS(Bayer Online Data Acquisition and Storage)服务的3.5版本安装程序。BODAS是一款由德国拜耳公司(Bayer)开发的数据采集与存储系统,主要用于在制药、...
总结起来,`apollo-adminservice-1.2-release.zip` 提供了一整套运行和管理Apollo Admin Service的资源,包括服务本身、配置文件、启动脚本以及源代码,便于开发者在不同的操作系统上部署和定制配置中心。...
【标题】"qtservice-2.6_1" 是一个与Qt库相关的服务框架版本,主要用于在Qt应用程序中实现后台服务功能。这个版本号表示这是2.6版的第一次更新,很可能包含了对前一版本的改进和修复。 【描述】"qtservice-2.6_1-...
在本例中,我们关注的是`mypy-boto3-service-quotas-1.14.58.0.tar.gz`这个压缩包,它包含了一个名为`mypy-boto3-service-quotas`的Python库。这个库是专门为使用Boto3库与Amazon Web Services (AWS)的Service ...
WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态还有,我的服务器没有使用WEB代理和防火墙客户端。
`apollo-adminservice-1.7.1.jar` 是阿波罗配置中心admin服务的可执行文件,包含所有必要的类和依赖,可以使用Java命令直接启动。这个文件是整个服务的核心,处理了配置中心的业务逻辑,如处理客户端的配置请求,...