歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用ContentObserver監聽ContentProvider中數據的變化

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

日期:2017/3/1 10:19:02   编辑:Linux編程

如果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. true, new 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