1

我想获得有关任何音频通知的回调。我创建观察者:

getContentResolver().registerContentObserver(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, false, new MyContentObserver(_handler) { ...

每次我都会 onChange,然后添加或删除一些歌曲。

但我不明白另一个:我将一些文件(test.log)复制到设备。复制文件后我没有得到 onChange 。但是如果我删除这个文件,我会得到 onChange。但为什么?

4

1 回答 1

1

在您的内容提供者中,您可以定义应该为哪个操作发送通知。这是该delete()操作的示例。

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
    final SQLiteDatabase db = mOpenHelper.getWritableDatabase();
    switch (sUriMatcher.match(uri)) {
        case POSTS: {
            int rowCount = db.delete(DatabaseProperties.TABLE_NAME_POSTS, selection, selectionArgs);
            getContext().getContentResolver().notifyChange(uri, null);
            return rowCount;
        }
        default: {
            throw new UnsupportedOperationException("Unknown URI: " + uri);
        }
    }
}

您可能错过的命令是notifyChange().

于 2012-08-16T08:07:36.423 回答