1. 程式人生 > >《第一行代碼》讀書筆記二

《第一行代碼》讀書筆記二

有序 android系統 標準 繼續 除了 gist 橫屏 err 發出

一:廣播

1:廣播接收器的使用步驟

繼承BroadcaseReceiver定義一個類,重寫onReceive()方法——註冊廣播接收器——接受系統廣播或其他地方發出的自定義廣播並響應

2:動態註冊和靜態註冊

廣播接收器要註冊後才能接受廣播並響應,註冊的方式有兩種:

動態註冊:在activity的onCreate()方法中創建intentfilter,添加action、catagory等過濾條件後,調用registerReceiver(receiver,intentfilter)註冊廣播接收器;在activity的onDestroy()方法中unregisterReceiver(receiver)註銷廣播接收器。【動態註冊的廣播接收器只有在程序activity啟動後才被啟用,也隨著程序的退出而停用】

靜態註冊:在AndroidManifest.xml文件中註冊廣播接收器,並通過intent-filter標簽定義過濾條件。【靜態註冊的廣播接收器隨著程序的安裝而被整個android系統監聽】

3:發送廣播

廣播可以來自系統,比如開關機、網絡狀態變化等系統事件,android都會廣播出去,我們可以在程序中監聽這些系統廣播而作出響應,如:開機自啟動、橫屏自動全屏、網絡狀態變化提示等等。【一切android系統自身的變化事件,都可以用對應的廣播被我們監聽從而作出自定義的響應!另外,日常開發中需要用到的大多都是系統廣播

除了系統廣播,我們也可以在程序中發送自定義的廣播【一般,自定義的廣播用於進行一些跨程序的調用,例如:在微信中啟動王者榮耀

】。

發送標準廣播:在activity代碼中創建intent,設置action等後,sendBroadcast(intent)即可,符合過濾條件的接收器自然會做出響應;【標準廣播幾乎是異步、同時到達所有廣播接收器的】

發送有序廣播:在activity代碼中創建intent,設置action等後,sendOrderedBroadcast(intent,null),系統中的廣播接收器會根據註冊時的優先級或先後順序依次接受該廣播。而在符合過濾條件的廣播接收器中,可以在onReceive()方法中響應完畢後通過abortBroadcast()中斷廣播繼續往下傳遞。

4:本地廣播

本地廣播是只能在程序內部傳遞的廣播

,通過LocalBroadcastManager進行廣播的註冊、發送、註銷等。

使用步驟:

定義廣播接收器類——創建LocalBroadcastManager實例——通過LocalBroadcastManager實例註冊廣播接收器——通過LocalBroadcastManager實例發送廣播——在activity的onDestroy()方法中通過LocalBroadcastManager實例註銷廣播接收器。

【本地廣播是只能在程序內部傳遞和響應的,因此其生命周期隨同程序,也就是說只能動態註冊本地廣播接收器

《第一行代碼》讀書筆記二