Android ContentObserver 是一個用于監視數據庫或內容提供者中數據變化的類。當數據發生變化時,ContentObserver 會通過回調方法通知觀察者。以下是使用 ContentObserver 的基本步驟:
ContentObserver contentObserver = new ContentObserver(Uri.parse("content://your_content_provider_uri"), true);
其中,Uri.parse("content://your_content_provider_uri")
是你要監視的內容提供者的 URI,true
表示自動注冊到內容提供者,這樣當數據發生變化時,ContentObserver 會立即收到通知。
你可以將 ContentObserver 注冊到 ContentResolver 上,以便在數據發生變化時接收通知。例如,在一個 Activity 中注冊 ContentObserver:
getContentResolver().registerContentObserver(Uri.parse("content://your_content_provider_uri"), true, contentObserver);
創建一個類,繼承自 ContentObserver,并重寫 onChange()
方法。當數據發生變化時,onChange()
方法會被調用。例如:
public class MyContentObserver extends ContentObserver {
public MyContentObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
// 在這里處理數據變化,例如刷新 UI 或更新數據
}
}
當你不再需要監視數據變化時,應該注銷 ContentObserver。例如,在一個 Activity 的 onDestroy()
方法中注銷 ContentObserver:
getContentResolver().unregisterContentObserver(contentObserver);
這樣,當內容提供者中的數據發生變化時,MyContentObserver 就會收到通知,并執行相應的操作。