프로그래밍/안드로이드

안드로이드 - DataBase 변경 시에 ContentObserver 이용하여 check 하는 방법.

가카리 2013. 12. 31. 17:43
반응형

데이터 베이스에 값이 변경되었을 때 알 수 있는 방법이 있다.

ContentObserver 를 이용하면 된다.




------ example ------

 Activity 또는 Service 에서 사용될 수 있다.


 

private final Uri XML_URI = Uri.parse("content://com.pantech.xmlProvider");

 

// register 한다.

 public void onCreate(){

  super.onCreate();

 

  mObserver = new XmlParsingContentObserver();

        getContentResolver().registerContentObserver(XML_URI,true, mObserver);

 }

 

// unregister 한다.

 public void onDestroy(){

  super.onDestroy();

  getContentResolver().unregisterContentObserver(mObserver);

 }

 

 

 private class XmlParsingContentObserver extends ContentObserver {

 

        public XmlParsingContentObserver() {

            super(new Handler());

        }

 

        /**

         * Receives notification when the data in the observed content

         * provider changes.

         */

        public void onChange(final boolean selfChange) {

        

         Log.i(" XmlParsingService", "DB changed));

         }

    }

 

 



--------------------------------

ContentObserver 등록 시에 option ....

==> 두번째 인자가 false 이면 CONTENT_URI 가 정확하게 일치하는 경우에만 호출이 된다.

등록한 사용자 CONTENT_URI 가 content://aaa.bbb.ccc/ddd 일 경우

getContentProvider.update(content://aaa.bbb.ccc/ddd/1, values) 가 호출되면

true 일 경우 호출이 되고 false 면 호출되지 않는다....

출처 : http://skyswim42.egloos.com/tag/registercontentobserver/page/1