我想知道在我已经知道行 uri 的情况下是否可以直接在游标(或其他容器)中获取内容提供程序行中存在的数据(换句话说,我已经有了 ContentURIs行 ID 附加)。
插入或 Content Observer OnChange(在 android api 16 上)都会返回插入/更改的 URI,我想有效地从该行获取数据(无需太多查询或指令)。但是,我发现的唯一方法是从 URI 中解析 ID,使用该 id 的选择子句构建查询,然后获取光标,如下所示:
long row = ContentUris.parseId(uri);
String mSelectionClause = ContentProvider.Table._ID + " = ?";
String[] mSelectionArgs = {Long.toString(row)};
Uri other_uri = Uri.parse(ContentProvider.AUTHORITY_STRING + ContentProvider.UriPathIndex.Table);
Cursor cursor = cr.query(other_uri ,null,mSelectionClause,mSelectionArgs,null);
还有其他方法吗?我想知道是否可以直接使用行uri