ContentUris.withAppendedId中'_id'的用途是什么?

时间:2014-03-18 14:36:51

标签: android sqlite uri android-contentprovider

我一直在努力只更新SQlite数据库表中的一行。

虽然我在ContentUris.withAppendedId Uri中提供了我想要更新的行的_id值,但仍然需要检查update语句的'WHERE'部分是否记录的id是相同的。

当我将update语句的'WHERE'部分留给'null'时,update语句尝试更新表的所有行,而不是仅更新具有提供的id的行。

1 个答案:

答案 0 :(得分:1)

URI定义资源。它们没有定义可以对该资源进行哪些操作。

关于ContentProvider(因为您已将其包含在问题的代码中),您需要考虑具有ContentProvider的应用和希望访问或修改的应用它的数据可能不是同一个应用程序。如果要实现ContentProvider,则需要识别所提及类型的URI并相应地调整WHERE子句,假设您支持该资源上的操作。

另一个用途是使用插入操作,其中返回的典型事项是刚插入的项目的URI。例如。在URI content://authority/directory上成功插入会返回content://authority/directory/_id之类的内容,其中_id是新插入行的ID。