廣播機制是基於消息發佈和訂閱的事件驅動模型,即廣播發送者負責發佈消息,接收者須要先訂閱消息,最後才能接受到消息。ui
二、Activity組件在註冊一個廣播接收者的時候,並非真正的將廣播接收者註冊到ActivityManagerService中,而是將與它關聯的一個InnerRecentlyiverduixaing註冊到ActivityManagerService中,檔ActivityManagerService接收到一個廣播的時候,它就會根據這個廣播的類型在內部找到對ing的InnerReceiver對象,而後經過這個InnerReceiver 對象將這個官博發送給對應的廣播接收者處理,spa
三、廣播的發送過程:線程
3。一、 一個Service或者Activity組件,將一個廣播發送給ActivityManagerService.
對象
3.2 、ActivityManagerService接受到一個廣播以後,首先找到這個廣播的廣播接收者,而後添加到廣播調度隊列中,最後向ActivityManagerService所運行的線程的消息隊列發送一個類型BROADCAST_INTENT_MSG的消息,這個時候對廣播發送者來講,一個廣播發送就結束了隊列
3.3 當發送到ActivityManagerService的小城的消息隊列中,當BROADCAST_INTENT_MSG被處理的時候,ActivityManagerService就會從廣播調度隊列中找到須要接受廣播的廣播接收者,而且將對應的廣播發送給他們所運行在的應用程序進程中。進程
3.4 廣播接收者所運行在的應用程序進程收到ActivityManagerService發送的廣播以後,並非直接將接收到的廣播分發給廣播接收者來處理,而是將接收到的廣播封裝成一個消息。而且發送到主線程的消息隊列中,檔這個消息被處理的時候,應用程序進程纔會將他所買哦書的廣播發送給相應的廣播接收者處理。事件