从ContentProviderResult []删除失败或成功?

Cel*_*Cel 6 java android contacts android-contentprovider

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

但是,删除联系人ContentProviderOperationapplyBatch返回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] ?
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*ler 4

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

事实上,操作并没有失败(因此也不例外)。第二次查询就没有效果了。