深入淺出 Android核心組件Service(2)
第二種是通過綁定的方式來啟動Service。先看流程圖。

點擊查看大圖
綁定的方式和***節(jié)的方式***的不同就是在于,Activity可以和Service實現(xiàn)關聯(lián),當被關聯(lián)的Activity結束后,相應的Service 也會停止,同時在綁定了的Activity中我們還可以回調(diào)我們在Service中定義的方法。在這里我們使用了 this.bindService(intent, myServiceConnection, Context.BIND_AUTO_CREATE); 來啟動Service,當Service創(chuàng)建了同時綁定了Activity之后,會回調(diào)我們定義的ServiceConnection(),從而傳回IBinder接口,我們就能夠調(diào)用Service中的方法了。這時候Activity就和 Service實現(xiàn)了綁定,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>
本節(jié)的源代碼可以在此下載: http://down.51cto.com/data/326385