Android2010. 1. 3. 15:25
Android API에서는 데이터 베이스의 데이터 값이 변경되었을경우 Notifications을 제공해주는 ContentObserver라는 API를 제공하여 줍니다.  

- 사용법 예제 소스입니다.

public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");

// 해당 데이터베이스의 데이터값이 변경시에 onChange() method가 호출됩니다.
private ContentObserver bookmarksObserver = new ContentObserver(new Handler()) {
     @Override
     public void onChange(boolean selfChange) {
          super.onChange(selfChange);
          Log.d("Boookmarks", "onChanged : " + selfChange);
     }
};

// ContentObserver에 해당 데이터 베이스의 URI를 등록합니다.
private BookmarksManager(Context context) { 
     this.context = context;
     this.contentResolver = context.getContentResolver();
     contentResolver.registerContentObserver(BOOKMARKS_URI, true, bookmarksObserver );
}

// 해당 Manager Class가 소멸될경우 꼭 ContentObserver에서 해제 시켜주어야 합니다
public static void destroy() {
     if (instance != null && instance.contentResolver != null && instance.bookmarksObserver != null) {
          instance.contentResolver.unregisterContentObserver(instance.bookmarksObserver);
     }
     instance = null;
}
Posted by 위푸