2012년 6월 23일 토요일

android 데이터 베이스 변경시 ContentObserver활용하여 체크하기



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;
 }


댓글 없음:

댓글 쓰기