onBind綁定

一、一個Activity向ActvityManagerService發送一個綁定Service組件的進程間通訊請求,併發

二、ActvityManagerService發現若是Service組件不在同一個應用程序中,那麼就會啓動一個新的應用程序,不然直接通知應用程序進程將Service組件啓動。spa

三、Service組件啓動以後,ActvityManagerService就請求它返回一個Binder本地對象,這樣Activity組件就能夠經過Binder對象和Service組件進行鏈接。線程

四、ActvityManagerService將前面Service組件得到的一個Binder對象發送給Activity組件。對象

五、Activity組件得到了ActvityManagerService發送的Binder本地對象以後,能夠經過它得到訪問Service組件的一個接口。接口

Activity組件能夠經過這個接口訪問來使用Service組件的服務。進程

-----------------------------it

在Connect的時候,在將Binder本地對象傳給Activity組件的時候,是經過消息處理機制來間接傳遞的,一、由於當前線程須要儘快返回到線程池中,去作其餘的Binder進程間通訊請求,從而提升程序的併發處理Binder通訊請求能力。二、在Activity組件在接受Binder本地對象的時候,可能會執行一些界面操做相關的代碼,所以須要經過消息處理機制將這個操做放在主線程中執行。線程池

相關文章
相關標籤/搜索