6

我想使用ContentResolver.update(Uri uri, ContentValues values, String where, String[] selectionArgs) 我知道如何使用它的方法,但我想知道它对 ContentValues 有什么作用。它会覆盖所有现有的 ContentValues,还是只覆盖给定的 ContentValues?

例如,这些 ContentValues 存在:

A: abc
B: 123
C: 456

方法中的 ContentValuesupdate()包含以下内容:

A: asdf
C: 789

那么新的 ContentValues 将是:(仅覆盖给定的值)

A: asdf
B: 123
C: 789

还是会:(覆盖所有值)

A: asdf
C: 789

这是我的代码:

 contentResolver.update(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values, "_data=" + audioFilePath, null);

其中values包含ContentValues应该被覆盖的内容并audioFilePath包含音频文件的路径(即 的值_data)。

4

2 回答 2

3

它只会覆盖给定的 ContentValues。

于 2013-10-19T10:11:37.130 回答
2

根据文档,所有 ContentResolver.update() 方法所做的就是调用您在第一个参数中提供的 URI 定义和标识的 ContentProvider 的更新方法。

因此,要确切了解发生了什么,您需要查看如何定义您引用的 ContentProvider 的 update() 方法。 查看 ContentProvider 基础文档。 如果您在正确定义 contentProvider 的 update() 方法时需要帮助,请在此处发布您的代码或提出特定的问题。

于 2013-10-19T10:58:50.420 回答