Android基礎-6

碎片Fragment是一種可以嵌入在活動當中的ui片段。使程序更加合理和充分的使用大屏幕的空間。在平板上使用得廣泛。

在一個網絡範圍內,最大的ip地址是保留作爲廣播地址來用的,如果某個網絡的ip地址是192.168.0.xxx,子網掩碼是255.255.255.0,那個廣播地址就是192.168.0.255.

廣播數據包會發送到同一網絡的所有端口。即該網絡中的每一臺主機都會收到這個廣播。

爲了方便系統級別的消息通知,安卓引入了廣播消息機制。

安卓中的每個應用程序可以對自己感興趣的廣播進行註冊,這樣程序就只會收到自己所關心的廣播內容。廣播可能來源於系統,也可以來自於其他的應用程序。安卓提供一套完整的api允許應用程序自由的接受和發送廣播。發送的方法藉助於Intent,接受的方法需要用到廣播接收器Broadcast Reciever.

廣播的類型:標準廣播,時序廣播。

標準廣播Normal broadcasts。完全異步執行的廣播。在廣播發出以後,所有的廣播接收器都會接收到,廣播效率高,但是無法被截斷。

有序廣播Ordered

broadcasts。同步執行的廣播。在廣播發出以後,同一時刻只有一個廣播接收器接收到,進行邏輯處理完以後,廣播纔可以繼續傳遞。廣播接收器有相應的先後的順序,優先級別高的纔可以接受到,前面的廣播接收器可以截斷正在傳播的廣播。

安卓系統內置很多的系統廣播,我們可以在應用程序中監聽這些廣播來得到系統的狀態信息。比如開機完成後發送一條廣播,電池電量變化發送廣播,時間或者時區發生變化也會發送廣播。如果想要接受到這些廣播就需要使用廣播接收器。

廣播接收器可以自由的對自己感興趣的廣播進行註冊,註冊廣播的方式有兩種,一種是動態註冊,即在代碼中註冊,二是在androidmanifest.xml中註冊,爲靜態註冊。

創建廣播接收器的方法:集成BroadcastReciever,並且重寫父類的onRecieve()方法,當有廣播的時候onRecieve方法就會被執行,具體的邏輯可以放在onRecieve裏面。但是不要再onReceive()方法中添加太多邏輯以及耗時操作。在廣播接收器中不允許開啓線程,廣播接收器更多的是扮演一種打開程序其他組件的角色,比如創建狀態欄通知,啓動服務等。

動態註冊的時候注意取消註冊。

動態註冊可以自由的控制註冊和註銷,靈活,但是必須在程序啓動後才能接受到廣播,因爲註冊的邏輯是放在onCreate中。當程序沒有啓動的是就可以接受到廣播需要使用靜態註冊。

安卓爲了保證應用程序的安全性,當程序需要訪問系統的關鍵的信息需要在配置文件中聲明權限,否則程序直接崩潰。在AdroidManifest.xml中添加權限。

廣播是可以跨進程的通信方式。

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