歡迎使用CSDN-markdown編輯器

1 通過startService
 Service會經歷 onCreate -> onStart
 stopService的時候直接onDestroy
 如果是調用者自己直接退出而沒有調用stopService的話,Service會一直在後臺運行。下次調用者再起來可以stopService。

2 通過bindService
 Service只會運行onCreate, 這個時候服務的調用者和服務綁定在一起
 調用者退出了,Service就會調用onUnbind->onDestroyed,所謂綁定在一起就共存亡了。並且這種方式還可以使得調用方(例如)調用服務上的其他的方法
bindService這種方式啓動,在手機上按Home鍵Activity是不會退出的,再次進來點擊綁定也不會執行任何方法,他是不執行onStart的,但是要按back的話,Activity會直接退出,Service調用onUnbind–>onDestroy

startservice的生命週期
bindservice 生命週期
bindservice 生命週期
AIDL(android接口描述語言)是一個IDL語言,它可以生成一段代碼,可以使在一個android設備上運行的兩個進程使用內部通信進程進行交互。如果你需要在一個進程中(例如在一個Activity中)訪問另一個進程中(例如一個Service)某個對象的方法,你就可以使用AIDL來生成這樣的代碼來僞裝傳遞各種參數。

要使用AIDL,Service需要以aidl文件的方式提供服務接口,AIDL工具將生成一個相應的Java接口,並且在生成的服務接口中包含一個功能調用的stub服務樁類。Service的實現類需要去繼承這個stub服務樁類。Service的onBind方法會返回實現類的對象,之後你就可以使用它了這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章