歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

使用ContentObserver監聽ContentProvider中數據的變化

如果ContentProvider的訪問者需要知道ContentProvider中的數據發生了變化,可以在ContentProvider 發生數據變化時調用getContentResolver().notifyChange(uri, null)來通知注冊在此URI上的訪問者,例子如下:

public class PersonContentProvider extends ContentProvider {public Uri insert(Uri uri, ContentValues values) { db.insert("person", "personid", values); getContext().getContentResolver().notifyChange(uri, null);}}

如果ContentProvider的訪問者需要得到數據變化通知,必須使用ContentObserver對數據(數據采用uri描述)進行監聽,當監聽到數據變化通知時,系統就會調用ContentObserver的onChange()方法:

  1. getContentResolver().registerContentObserver(Uri.parse("content://cn.itcast.providers.personprovider/person"),  
  2.                 truenew PersonObserver(new Handler()));  
  3. public class PersonObserver extends ContentObserver{  
  4.     public PersonObserver(Handler handler) {  
  5.         super(handler);  
  6.      }  
  7.     public void onChange(boolean selfChange) {  
  8.         //此處可以進行相應的業務處理   
  9.     }  
  10. }  
Copyright © Linux教程網 All Rights Reserved