第二种是通过绑定的方式来启动Service。先看流程图。
点击查看大图
绑定的方式和***节的方式***的不同就是在于,Activity可以和Service实现关联,当被关联的Activity结束后,相应的Service 也会停止,同时在绑定了的Activity中我们还可以回调我们在Service中定义的方法。在这里我们使用了 this.bindService(intent, myServiceConnection, Context.BIND_AUTO_CREATE); 来启动Service,当Service创建了同时绑定了Activity之后,会回调我们定义的ServiceConnection(),从而传回IBinder接口,我们就能够调用Service中的方法了。这时候Activity就和 Service实现了绑定,Activity退出了Service就相应的退出了。Service的申明如下,intent filter 是对接收Service的过滤。
- <service android:enabled="true" android:name=".service.mediaplayer.BindMusicService">
- <intent-filter>
- <action android:name="com.androidtest.service.mediaplayer.BindMusicService" />
- </intent-filter>
- </service>
本节的源代码可以在此下载: http://down.51cto.com/data/326385