電話錄音服務只是內部進行錄音以及調用PhoneManager對象。許多時候服務在處理業(yè)務后需要和其它程序進行通信。.startService()和stopService()適用于調用者和服務者之間沒有交互的情況,否則應該適用bindSerivce()和unbindService()方法
調用bindService()方法時:
1. 服務若沒有創(chuàng)建
s.onCreate()--às.onBind()-à服務于訪問者綁定在一起
如果訪問者退出:
s.onUnBind()às.onDestroy();
2.服務已經創(chuàng)建
不會導致調用多次服務的創(chuàng)建(onCreate()和綁定(onBind()),如若解除綁定可調用unbindService()方法,系統(tǒng)同樣會調用服務的onUnbind()-àonDestory()方法。
onBind()只有調用bindService()方法才會觸發(fā)方法的調用,如果服務已經被綁定,該方法不會執(zhí)行多次
onUnbind()方法只有調用unbindService()方法才會導致該方法的執(zhí)行。
電話錄音服務只是在服務內部進行錄音以及調用PhoneManager對象,許多時候服務在處理業(yè)務后,需要和其它程序進行通信.startService()和stopservice()使用使用者和服務之間沒有交互的情況,否則應該使用bindService()和unbindService()方法。
調用bindService()方法時:
1. 服務若沒有創(chuàng)建
s.onCreate()-às.onBind()-à服務于訪問者綁定在一起。
如果訪問者退出:
s.onUnBind()-às.onDestroy();
2.服務已經創(chuàng)建
不會導致調用多次服務的創(chuàng)建(onCreate())和綁定(onBind()),如果解除綁定可調用unbindService()方法,系統(tǒng)同樣會調用服務的onUnbind()-àonDestroy()方法。
onBind()只有調用bindService()方法才會觸發(fā)該方法的調用。如果服務已經被綁定,該方法不會被執(zhí)行多次。
onUnbind()方法只有調用unbindService()方法才會導致該方法的執(zhí)行。
客戶端和服務通過Ibinder對象聯(lián)系在一起。bindService()方法調用時,需要Intent,ServiceConnection和flag參數,其中serviceConnection對象用于接收服務onBind()方法,返回的Ibinder對象,并且該對象會傳入到第二個參數serviceConnection對應的方法中,觸發(fā)方法的回調,總而言之,使用客戶端持有到達service對象的引用。