android 四大组件值Service 绑定式服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 四大组件值Service 绑定式服务相关的知识,希望对你有一定的参考价值。
bound服务是指允许被应用程序组件绑定的服务,通过调用bindService()可以完成绑定,
用于创建一个长期存在的连接(并且一般不再允许组件通过调用startService()来start服务。
当应用程序中的activity或其它组件需要与服务进行交互,或者应用程序的某些功能需要暴露给其它应用程序时,
你应该创建一个bound服务,并通过进程间通信(IPC)来完成。
要创建一个bound服务,你必须实现onBind()回调方法,并返回一个IBinder对象,
此对象定义了与服务进行通信的接口。 然后,其它应用程序组件可以调用bindService()来获得接口
并调用服务中的方法。 服务只在为绑定的应用程序组件工作时才会存活,因此,只要没有组件绑定到服务,
系统就会自动销毁服务(你不需要像started服务中那样通过onStartCommand()来终止一个bound服务)。
要创建一个bound服务,首先必须定义好接口,用于指明客户端如何与服务进行通信。
这个客户端与服务之间的接口必须是一个IBinder对象的实现,并且你的服务必须在onBind()
回调方法中返回这个对象。一旦客户端接收到这个IBinder,它就可以通过这个接口来与服务进行交互。
同一个服务可以被多个客户端绑定。当客户端完成交互时,会调用unbindService()来解除绑定。
一旦不存在客户端与服务绑定时,系统就会销毁该服务。
实现bound服务的方式可以有很多种,实现的过程也比started类型的服务更为复杂,
因此bound服务将在单独的bound服务文档中讨论。
以上是关于android 四大组件值Service 绑定式服务的主要内容,如果未能解决你的问题,请参考以下文章