Android Service---创建绑定类型服务

绑定类型的服务允许应用程序组件通过调用bindService()方法与服务创建一个长期的关联(通常不允许组件通过调用startService()方法来启动它)。

在你想要Activity以及应用程序中的其他组件跟服务进行交互时,或者要把应用程序中的某些功能通过进程间通信(IPC)暴露给其他应用程序时,就需要创建一个绑定类型的服务。

要创建绑定类型的服务,你必须实现返回IBinder对象的onBind()回调方法,IBinder对象定义了跟服务进行通信的接口。然后其他应用程序组件能够调用bindService()方法获取这个接口对象,并开始调用这个服务的方法。绑定类型的服务只服务于绑定它的应用程序组件,因此当没有应用组件绑定这个服务时,系统就会销毁它。(你不必像样终止通过onStartCommand()方法启动的服务那样终止绑定类型服务)。

要创建绑定类型的服务,首先要定义接口,用于指定客户端怎样跟服务进行通信。服务和客户端的之间的接口必须是一个IBinder接口的实现,并且要求必须从onBind()回调方法返回这个接口对象。一旦客户端收到了IBinder对象,它就能通过这个接口开始与服务进行交互。

多个客户端能够同时绑定这个服务。当客户端完成与服务的交互时,它调用unbindService()方法来解绑。一旦没有客户端绑定这个服务了,系统就会销毁它。

有多种方法实现绑定类型的服务,并且实现要比启动类型服务更复杂,因此绑定类型服务会在独立的文档中(绑定类型服务)详细讨论。

 

你可能感兴趣的:(android,文档)