衝刺2021 Android面試之BroadCast

其他面試題推薦:衝刺2021 Android面試之BroadCast
衝刺2021專欄會一直更新,歡迎收藏

基礎篇

BroadCast是什麼?

Android中,廣播廣泛運用在應用內和應用間傳輸數據,是一種信息傳輸的機制。Android中我們要發送的廣播內容是一個Intent,這個Intent可以攜帶我們要傳輸的數據。

廣播的使用場景?

1、同一App具有多個進程的不同組件之間的消息通信。
2、不同App之間的組件之間消息通信。

廣播的種類?

1、Normal Broadcast:Context.sendBoradcast
2、System Broadcast:Context.sendOrderedBroadcast
3、Local Boradcast:只在本App內傳播

BroadCast Receive有哪些?

1、靜態註冊:註冊完成後就一直運行(一旦註冊和App是否存活無關
2、動態註冊:跟隨Activity的生命週期,一定要在Activity銷燬時取消註冊,否則可能內存泄漏。

BroadCast實現原理有了解嗎?

1、自定義廣播接收者,重寫onRecvice()方法
2、通過Binder機制向AMS進行註冊
3、廣播發送者通過Binder機制向AMS發送廣播
4、AMS查找符合響應條件(IntentFilter/Permission等)的BroadCastReceiver,將廣播發送到BroadCastReceiver(一般情況下是Activity)相應的消息循環隊列中。
5、詳細循環拿到廣播,回調BoradcastReceiver的onReceive()方法

LocalBroadCastManager和普通廣播比有什麼特點?

1、使用本地廣播發送的廣播只在自身App內傳播,因此不必擔心泄露隱私數據
2、本地廣播無法接受其他App發送的廣播
3、比系統的全局廣播更加高效

本地廣播實現原理?

本地廣播事實上是通過單例,內部使用Handler實現的,它的sendBroadCast()方法是通過Handler發送一個Message實現的。

進階篇

待更新

發佈了28 篇原創文章 · 獲贊 12 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章