我一直在努力更新 SQlite 数据库表中的 1 行。
虽然我在 ContentUris.withAppendedId Uri 中提供了我想要更新的行的 _id 值,但我仍然必须检查更新语句的“WHERE”部分是否记录的 id 相同。
当我将更新语句的“WHERE”部分保留为“null”时,更新语句会尝试更新表的所有行,而不是仅更新具有提供的 ID 的行。
最佳答案
URI 定义资源。它们没有定义可以对该资源进行哪些操作。
关于 ContentProvider
(因为您已将其包含在问题的标签中),您需要考虑带有 ContentProvider
的应用程序和应用程序希望访问或修改其数据的可能不是同一个应用程序。如果您要实现 ContentProvider
,则需要识别您提到的那种 URI 并相应地调整 WHERE 子句,前提是您支持对该资源的操作。
另一个用途是插入操作,其中返回的典型内容是刚刚插入的项目的 URI。例如。在 URI content://authority/directory
上成功插入将返回类似于 content://authority/directory/_id
的内容,其中 _id 是新插入的 ID行。
关于android - ContentUris.withAppendedId中 '_id'有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22482549/