0

我想知道如果在 URI 中指定选择参数或作为相应参数会有所不同吗?例如

Uri.Builder builder = Something.CONTENT_URI.buildUpon(); 
builder.appendQueryParameter("someColumn", "someValue");
Uri uri = builder.build();

getContext().getContentResolver().select(uri, null, null);

相对

getContext().getContentResolver().select(
    Something.CONTENT_URI, 
    new String[]{"someColumn"}, 
    new String[]{"someValue"}
);

我猜 ContentResolver 在内部解析和拆分 URI,所以它实际上并没有什么区别?

还是直接将 URI 传递给 ContentProvider,所以 ContentProvider 需要实现适当的 URI 解析?

4

1 回答 1

0

只需要自己弄清楚:尝试将例如 Events.CALENDAR_ID 作为 URI 参数传递给 CalendarContract.Events.CONTENT_URI,这给出了

E/AndroidRuntime(1714): java.lang.IllegalArgumentException: Invalid URI parameter: calendar_id
E/AndroidRuntime(1714):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)
于 2013-02-03T16:29:42.463 回答