所有文檔及實例均爲老師編寫歸納,版權均歸我的Android老師所有,如有侵權即刪
Broadcast:
1. Broadcast:廣播,不區分應用進程,整個android系統共享。
2. 如何發送廣播:在Android上發送廣播室通過Context對象的sendBroadcast實現發送廣播的功能(sendStickyBroadcast)
3. 如何接受廣播:在Android上通過註冊BroadcastReceiver來接受廣播。
4. 如何註冊BroadcastReceiver:
第一種註冊方式,靜態註冊:
l 創建一個class對象繼承BroadcastReceiver,重寫onReceive方法,處理接受到的廣播
l 在清單文件中聲明該BroadcastReceiver,並通過intent-filter來指定,該廣播接收器接受哪些廣播
靜態註冊的特點:只要應用程序進程存在,那麼就可以接受到廣播(只有註冊,沒有註銷)
第二種註冊方式,動態註冊:
l 在需要接收廣播的類中,創建一個BroadcastReceiver類對象,編譯器會自動要求開發人員重寫onReceive方法,在其中處理收到的廣播
l 在類中通過Context對象,完成註冊和註銷
l 動態接收器,有註冊必須有註銷(在activity中,註冊和註銷應該正好對應聲明週期)
l 在註冊接收器之前,要爲接收器創建一個IntentFilter對象來指定接收器接收哪些廣播
動態註冊特點:只有開發者手動註冊之後,才能接收廣播,開發者註銷掉之後,不能接收廣播了
粘性廣播和普通廣播的區別:
1. 粘性廣播發出後,常駐內存,無論何時註冊reciver,都能收到廣播。普通廣播,必須是先註冊reciver再發送廣播才能收到
2. 粘性廣播默認存在一個屬性(replace:將相同作用的廣播,用新的替換舊的)
3. 註冊了replace屬性(Intent.FLAG_RECEIVER_REPLACE_PENDING)後,廣播的替換規則