Android与服务进程内通信
電話錄音服務只是內部進行錄音以及調用PhoneManager對象。許多時候服務在處理業務后需要和其它程序進行通信。.startService()和stopService()適用于調用者和服務者之間沒有交互的情況,否則應該適用bindSerivce()和unbindService()方法
?
調用bindService()方法時:
1.?????? 服務若沒有創建
s.onCreate()--às.onBind()-à服務于訪問者綁定在一起
如果訪問者退出:
s.onUnBind()às.onDestroy();
2.服務已經創建
不會導致調用多次服務的創建(onCreate()和綁定(onBind()),如若解除綁定可調用unbindService()方法,系統同樣會調用服務的onUnbind()-àonDestory()方法。
?
onBind()只有調用bindService()方法才會觸發方法的調用,如果服務已經被綁定,該方法不會執行多次
?
onUnbind()方法只有調用unbindService()方法才會導致該方法的執行。
?
電話錄音服務只是在服務內部進行錄音以及調用PhoneManager對象,許多時候服務在處理業務后,需要和其它程序進行通信.startService()和stopservice()使用使用者和服務之間沒有交互的情況,否則應該使用bindService()和unbindService()方法。
?
調用bindService()方法時:
1.?????? 服務若沒有創建
s.onCreate()-às.onBind()-à服務于訪問者綁定在一起。
如果訪問者退出:
s.onUnBind()-às.onDestroy();
2.服務已經創建
不會導致調用多次服務的創建(onCreate())和綁定(onBind()),如果解除綁定可調用unbindService()方法,系統同樣會調用服務的onUnbind()-àonDestroy()方法。
?
onBind()只有調用bindService()方法才會觸發該方法的調用。如果服務已經被綁定,該方法不會被執行多次。
?
onUnbind()方法只有調用unbindService()方法才會導致該方法的執行。
?
客戶端和服務通過Ibinder對象聯系在一起。bindService()方法調用時,需要Intent,ServiceConnection和flag參數,其中serviceConnection對象用于接收服務onBind()方法,返回的Ibinder對象,并且該對象會傳入到第二個參數serviceConnection對應的方法中,觸發方法的回調,總而言之,使用客戶端持有到達service對象的引用。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Android与服务进程内通信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再婚三胎可以报生育险吗
- 下一篇: Android-使用AIDL进程间通信