안녕하세요. 안드로이드를 공부하는 사람입니다.

 

제가 SDCard 상의 이미지 추가/수정/삭제에 대한 MediaStore DB상의 노티 이벤트를 받으려고 하는데요.

 

아래 소스를 실행하여 보면은, 

- 삭제시에는 onChange 두번 호출

- 파일명 변경시 onChange 한번 호출

- 파일 추가시 onChange 세번 호출

 

이렇게 호출이 됩니다. 파일을 한개만 추가/수정/삭제 했을 뿐인데, 어째서 위와 같이 여러번 호출이 되는거죠?

한번씩만 호출되어야 하는것이 아닌가요? 이게 정상 인지 궁금합니다.

 

혹시 아시는 분이 있으시다면 조언 부탁드리겠습니다.

 

 

소스

public class SnapshotActivity extends Activity
{
 public static final Uri IMAGE_URI = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
 
 ContentResolver cr;
 
 public static ContentObserver observer = new ContentObserver(new Handler())
 {
   @Override
   public void onChange(boolean selfChange)
   {
    super.onChange(selfChange);
    Log.d("Test", "onChanged : " + selfChange);
   }
 };
 
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        cr = this.getContentResolver();
        cr.registerContentObserver(IMAGE_URI, true, observer);
    }


 @Override
 protected void onDestroy()
 {
  super.onDestroy();
  cr.unregisterContentObserver(observer);
 }
      
}