안녕하세요. 안드로이드를 공부하는 사람입니다.
제가 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);
}
}



