課前回顧:
內容觀察者:
①註冊內容觀察者
uri uri2=uri.
parse
("content:");
//註冊層內容觀察者
resolver.
registercontentobserver
(uri2,
true
,new
contentobserver
(new
handler()
)});
②在內容提供者新增通知內容觀察者**
insert、update 、delete 方法中;
uri uri2=uri.
parse
("content:");
getcontext()
.getcontentresolver()
.notifychange
(uri2,null)
;
22.1 廣播接收者入門
22.1.1理論概述
理解廣播與廣播接收器
1)廣播事件處理屬於系統級的事件處理(一般事件處理是屬於view級的事件處理)
2)乙個應用可以在發生特定事件時傳送broadcast, 系統中任何應用只要註冊了對應的receiver就會接收到此broadcast
3)乙個應用如果對某個廣播感興趣, 就可以註冊對應的receiver來接收廣播
4)廣播事件機制是應用程式(程序間)之間通訊的一種手段
5)廣播機制最大的特點就是傳送方並不關心接收方是否接到資料,也不關心接收方是如何處理資料的,通過這種形式來達到接、收雙方的完全解耦
6)廣播事件處理過程即針對某一廣播做出響應的過程
22.1.2什麼是廣播接收者
android系統中,內建了很多系統級別的廣播,例如手機開機完成後會傳送一條廣播,電池電量不足時會傳送一條廣播等。
android系統中提供了廣播接收者broadcastreceiver,廣播接收者的作用就是接收來自系統或其他應用程式的廣播,並作出回應。
22.1.3廣播接收者建立與註冊
要使用廣播接收者接收其他應用程式發出的廣播,先要在本應用中建立廣播接收者並進行註冊。
①建立廣播接收者**:
public
class
mybroadcastreceiver
extends
broadcastreceiver
}
註冊廣播有兩種方式:常駐型廣播與非常駐型廣播。
①註冊常駐型廣播:
常駐型廣播是當應用程式關閉後,如果接收到其他應用程式發出的廣播,那麼該程式會自動重新啟動。常駐型廣播在清單檔案中註冊。
**如下:
android:name=
"cn.itcast.mybroadcastreceiver"
>
"20"
>
"android.provider.telephony.sms_received"
/>
<
/receiver>
②註冊非常駐型廣播
非常駐型廣播依賴於註冊廣播的元件的生命週期,例如,在activity中註冊廣播接收者,當activity銷毀後廣播也隨之被移除。這種廣播事件在**中註冊。
mybroadcastreceiver receiver =
newmybroadcastreceiver()
; stringaction=「android.provider.telephony.sms_received」;
intentfilter intentfilter =
newintentfilter
(action)
;registerreceiver
(receiver, intentfilter)
;
非常駐型廣播可以在ondestory()方法中解除廣播,具體**如下:
unregisterreceiver
(receiver)
;
C 學習(二十二)觀察者模式
實現觀察者模式有很多形式,比較直觀的一種是使用一種 註冊 通知 撤銷註冊 的形式。下面的三個圖詳細的描述了這樣一種過程 observer 將自己註冊到被觀察物件 subject 中,被觀察物件將觀察者存放在乙個容器 container 裡。被觀察物件發生了某種變化 如圖中的somechange 從容...
19 內容觀察者 廣播
19.1內容觀察者 廣播 內容提供者是android 系統四大元件之一,用於儲存和檢索資料,是android。系統中不同應用程式之間共享資料的介面 監聽內容提供者資料發生改變 1 定義乙個內容觀察者 2 監聽內容提供者資料 3 更新資料 廣播事件處理屬於系統事件處理。一般事件處理是屬於view級的時...
內容觀察者
1,註冊內容觀察者 getcontentresolver registercontentobserver uri,true,observer observer 實現contentobserver類的下面方法 override public void onchange boolean selfchan...