【发布时间】:2014-02-25 11:05:07
【问题描述】:
我需要跟踪在设备上创建的任何 .jpg 类型的新图像文件。
我已经在MediaStore 上使用ContentObserver 使用下面的类MediaStoreObserver 完成了这项工作,并且,
在我的一项服务中注册相同的内容。
我注意到onChange() 方法被多次调用以创建单个文件。
我知道创建的媒体文件会在MediaStore 的许多表中更新,因此onChange() 会被多次调用。
我的问题:如何注册到MediaStore 仅用于图像文件创建/编辑操作?
-提前致谢, 馒头
private class MediaStoreObserver extends ContentObserver {
public MediaStoreObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
//check image file changes in MediaStore
readFromMediaStore(_context,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
}
//register for external media changes for image files
if(mediaStoreObserver!=null){
_context.getContentResolver().registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
false,mediaStoreObserver);
【问题讨论】:
-
你在哪里注销了这个观察者??如果你没有检查你的代码是否多次注册了这个观察者。
-
这是在服务 onCreate() 中注册的,同样会在我的服务的 onDestroy() 中取消注册。