1. 程式人生 > >android,ContentProvider+ContentObserver+ContentResolver,用法。

android,ContentProvider+ContentObserver+ContentResolver,用法。

這個是傳智播客老師講android開發時的一個圖。

一、

PersonProvider繼承ContentProvider,實現ContentProvider中的資料操作類。

ContentObserver——內容觀察者,目的是觀察(捕捉)特定Uri引起的資料庫的變化,繼而做一些相應的處理,它類似於資料庫技術中的 觸發器(Trigger),當ContentObserver所觀察的Uri發生變化時,便會觸發它。觸發器分為表觸發器、行觸發器,相應地 ContentObserver也分為“表“ContentObserver、“行”ContentObserver,當然這是與它所監聽的Uri MIME Type有關的。

在需要監聽的操作中新增新增資料變化通知。

this.getContext().getContentResolver().notifyChange(uri, null);

第二個引數,資料變化的監聽者,可以不設定,也即是設為null,如果給定了這個監聽者,不管外面有多少個應用要設定監聽,進行監聽資料變化,這個getContentResolver()監聽物件,必然會得到資料的變化通知。

這句話是從別處複製的,但是不懂啊不懂啊~~~

二、 設定監聽

//設定監聽
this.getContentResolver().registerContentObserver(uri, true, new PersonContentObserver(new Handler()));

這個方法的引數請參考下面連結中大神給出的解釋:

http://www.cnblogs.com/slider/archive/2012/02/14/2351702.html 當有應用呼叫PersonProvider的insert方法是,就會執行onChange()方法,並打印出