Android:ContentResolver.update()完全做什么?

时间:2013-10-19 10:05:21

标签: android android-sqlite android-contentresolver

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

例如,这些ContentValues存在:

A: abc
B: 123
C: 456

update()方法中的ContentValues包含:

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包含应覆盖的ContentValuesaudioFilePath包含audiofile的路径(_data的值)。

2 个答案:

答案 0 :(得分:2)

它只会覆盖给定的ContentValues。

答案 1 :(得分:2)

As per the documentation,所有ContentResolver.update()方法都会调用您在第一个参数中提供的URI定义和标识的ContentProvider的更新方法。

因此,要确切知道发生了什么,您需要了解如何定义要引用的ContentProvider的update()方法。 Take a look at the ContentProvider basics documentation.如果您需要帮助正确定义contentProvider的update()方法,请在此处发布您的代码或提出具体问题。