`

service 的调用【转】

阅读更多
Service的调用

        Context.startService():Service会经历onCreate -> onStart(如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次 );stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。 注意,多次调用Context.startservice()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService()或者stopSelf(),他都会被停止。补充说明:传递给startService()的 Intent对象会传递给onStart()方法。调用顺序为:onCreate --> onStart(可多次调用) --> onDestroy。

        Context.bindService():Service会经历onCreate() -> onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用 onUnbind -> onDestroyed相应退出,所谓绑定在一起就共存亡了 。

        补充说明:传递给bindService()的Intent对象会传递给onBind(),传递给unbindService()的Intent对象会传递给onUnbind()方法。 调用顺序为:onCreate --> onBind(只一次,不可多次绑定) --> onUnbind --> onDestory。

注意事项:在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他 onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。

         broadcastRecevier只能通过startService启动Service ,因为广播本身生命周期很短,bind的话没有意义

Service的生命周期 :

        Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy我们有两种方式启动一个Service,他们对Service
生命周期的影响是不一样的。

1 通过startService
   Service会经历 onCreate -> onStart stopService的时候直接onDestroy


    如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService的话,Service会一直在后台运行。
    下次TestServiceHolder再起来可以stopService。


2 通过bindService  

   Service只会运行onCreate, 这个时候 TestServiceHolder 和TestService绑定在一起
    TestServiceHolder 退出了,Srevice就会调用onUnbind->onDestroyed所谓绑定在一起就共存亡了。
分享到:
评论

相关推荐

    通过aidl service调用activity

    本篇将深入探讨如何通过AIDL来调用Service,并进而启动Activity,以及相关的源码分析和工具使用。 首先,理解AIDL的基本概念是必要的。AIDL定义了一种接口,这个接口可以被多个进程共享,允许一个进程(如Service)...

    一个及其简单的AIDL远程Service调用

    本示例"一个及其简单的AIDL远程Service调用"展示了如何通过AIDL在客户端(TestAidlClient)与服务端(TestAidlService)之间建立通信,实现远程调用。 首先,我们需要理解Service的基本概念。在Android中,Service...

    一个Activity 调用Service接口的DEMO

    本DEMO将详细解释如何在一个Activity中调用Service接口,以便在后台执行特定任务。 首先,我们需要创建一个Service类。在AndroidManifest.xml文件中,必须声明这个Service,这样系统才能知道它的存在。声明Service...

    Web Service调用打印机打印自定义表单

    总的来说,通过Web Service调用打印机打印自定义表单涉及到Web服务设计、前端表单绘制、数据转换、打印机API理解和安全控制等多个方面。开发者需要综合运用多种技术和工具,才能实现这个功能,并确保其稳定可靠。...

    WinCE中的Web Service调用

    总结,WinCE平台上的Web Service调用涉及到的知识点包括:Web Service原理、.NET Compact Framework、添加Web引用、生成代理类、Web Service调用流程、XML处理、网络通信优化、线程管理和错误处理。了解并掌握这些,...

    动态调用Web Service

    动态调用Web Service 在ASP.NET和C#中,动态调用Web Service是指在不添加Web Service引用的情况下,后台动态调用Web Service。这种方法可以完全动态处理,传入服务服务网址、方法名和参数即可。 在本例中,我们...

    C#调用WCFService示例

    本教程将详细介绍如何在C#中调用WCF服务,以及在Visual Studio环境下创建和测试这个过程。 首先,理解WCF服务的基本概念至关重要。WCF服务是一种面向服务的架构,它允许开发者创建可以在网络上不同系统之间交换数据...

    WCFService可以通过web调用和WCF服务访问

    在标题和描述中提到的“WCFService可以通过web调用和WCF服务访问”,这意味着该服务已经配置为允许两种不同的调用方式。 1. **Web调用**:WCF服务可以通过HTTP协议暴露为Web服务,允许任何支持SOAP协议的客户端进行...

    java调用webservice接口案例,service调用webservice接口

    java调用webservice接口案例,精简,service调用webservice接口案例;不用生成一堆代码,逻辑清晰

    xfire web service调用代码

    三、XFire与Web Service调用 在Java中,使用XFire调用Web服务的基本步骤如下: 1. 创建客户端代理:XFire使用WSDL文档生成客户端代理类。这个代理类提供了服务方法的直接访问,就像调用本地方法一样。可以使用XFire...

    自己写的service及调用

    这里我们关注的是"自己写的service及调用",这个话题涉及到Web服务(Web Service)的概念、Eclipse IDE的使用以及Java编程语言的应用。Web服务允许不同应用程序之间的数据交换,通常基于开放标准如XML、SOAP和WSDL,...

    Android 远程Service调用实例

    本实例将详细介绍如何在Android中实现远程Service调用,主要涉及AIDL(Android Interface Definition Language)以及Parcelable接口的使用。 **1. Android远程Service** 远程Service是Android系统中实现不同应用...

    Web Service远程调用技术

    Web Service 远程调用技术 Web Service 是一种跨编程语言和跨操作系统平台的远程调用技术,通过 SOAP 在 Web 上提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。XML 是 Web Service 的基础,它是...

    windows service调用外部exe(vista/Win7)

    在windowxp以及之前的系统,window service中可以直接调用外部的exe,但是在vista以及win7以后,微软加了服务隔离,也就是说window服务和用户应用程序不再一个session里面,所以在window service中是不能直接调用...

    Web Service创建及调用

    类中的`Add`方法使用了`[WebMethod]`属性标记,表示这是一个可以通过Web Service调用的方法。 #### 三、如何调用Web Service 调用Web Service的过程通常涉及以下几个步骤: 1. **获取WSDL文件**:首先,需要从Web...

    SAP-WEBSERVICE调用案例

    本文将详细介绍如何在SAP系统中实现对Web Service接口的调用,并通过实际案例进行演示。 #### 二、SAP调用Web Service概述 SAP调用Web Service通常涉及以下几个步骤: 1. **创建WebService连接**:首先需要在SAP...

    Java调用.NET web service

    6. **处理响应**:Web Service调用完成后,会返回结果。Java客户端需要处理返回的XML数据,将其反序列化回Java对象。 在提供的资源中,“web service_demo.rar”可能是.NET Web Service的示例代码或部署文件,...

    webservice接口调用实例

    Web服务(Web Service)是一种基于互联网的、使用标准XML(Extensible Markup Language)进行通信的软件服务,允许...通过实践"webservice_client"这个实例,你可以深入理解这些概念并掌握Web Service调用的具体步骤。

    基于Axis的Web Service客户端调用

    【标题】基于Axis的Web Service客户端调用 在IT领域,Web Service是一种通过网络进行通信的标准协议,它允许不同系统间的应用程序互相交换数据。而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web ...

Global site tag (gtag.js) - Google Analytics