android bind service总结

关于BindService使用逻辑大体是这样。

在活动中创建一个Connection 对象。调用绑定服务的方法绑定服务。当绑定时,通过connection作为媒介会返回一个service内部定义好的binder对象。binder对象可以理解为活动与一个服务连接时,这个服务通过连接发送给活动的一个自定义对象。活动得到这个自定义对象后可以调用这个对象中的方法,来操纵服务控制的其他对象。

在MVC模式中,可以将界面活动想象为视图,视图通过connection连接服务,服务作为业务逻辑模型,服务中的binder作为控制器,活动通过UI给调用控制器binder的方法,binder控制服务中逻辑的执行。

举个音乐播放器的例子,活动只是一个界面,主菜单。真正起作用的是后台定义的一个播放音乐的服务。然而活动与服务进行通讯,通过服务内部定义的一个binder,这个binder同时实现了一个播放音乐的接口,具有控制音乐播放的功能。当活动绑定音乐服务的时候,服务会将binder传送给活动(通过复写onServiceConnected()方法),活动有了这个binder,就能调用播放音乐接口中的方法,进行控制音乐的播放了。当服务unbind时,这个binder也被回收,主界面就无法控制音乐的播放了。 

猜你喜欢

转载自blog.csdn.net/thezprogram/article/details/47604467