java - 从 ContentProviderResult[] 中删除失败还是成功?

标签 java android contacts android-contentprovider

当使用 contentResolver.delete(uri, null, null) 时,可以通过查看受影响的行数的返回值来确定是否成功。

然而,deleting a contact through ContentProviderOperation and applyBatch返回 ContentProviderResult[]

如何从 ContentProviderResult 对象确定删除操作是否成功?

ContentProviderOperation 删除失败了吗?

ArrayList<ContentProviderOperation> ops =
      new ArrayList<ContentProviderOperation>();

ops.add(ContentProviderOperation.newDelete(Data.CONTENT_URI)
      .withSelection(Data._ID + "=?", new String[]{String.valueOf(dataId)})
      .build());

ContentProviderResult[] results = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
if (results != null && results[0] != null) {                            
    // How to extract whether success or failure from results[0] ?
}

最佳答案

您将检查结果的计数字段并查看它是否等于 1。如果您两次运行问题中的操作,第一个结果应该给您计数 1(表示删除了一行),而第二个结果应该给你一个 0 的计数(表示没有行被删除,因为你已经删除了它)。

事实是操作没有失败(因此没有异常(exception))。查询只是第二次没有效果。

关于java - 从 ContentProviderResult[] 中删除失败还是成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931879/

相关文章:

java - 为字典构建数据结构

java - Hibernate - 同步映射同一列的两个属性

android - 更改 ActionBarCompat 标题颜色但不更改其他文本颜色

android - 如何修复 Android 上的 "java.lang.OutOfMemoryError: bitmap size exceeds VM budget "错误

iphone - 如何在 iPhone 上获取用户的电子邮件地址(经过许可)?

java - 使用 Java fork 和删除特权

Java - 图形 DrawImage 缩放问题

PHP 文件返回正确的回显,但在数据库中写入错误的字符串

android - 如何在 Android 上查找每个应用程序的数据使用情况?

php - JavaScript 验证简单模态形式的错误