ContentProviderOperation

ContentProviderOperation

我知道一条记录可以这样删除:

getContentResolver().delete(Events.CONTENT_URI, Events._ID + " =? ", eventId);


其中eventId是String array,其中包含事件的ID。
就我而言,我不想删除一个事件,而是多个事件。所以我有一个包含多个eventId的eventId数组。
我当然可以遍历数组并逐个删除事件,但是也可以只用一个调用就删除它们吗?

最佳答案

试试这个代码,

ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
ContentProviderOperation contentProviderOperation;

for (/*loop over your arrayList*/)
{
    contentProviderOperation = ContentProviderOperation.newDelete(Events.CONTENT_URI).withSelection(Events._ID + " =? ", new String[]{yourId}).build();
    operationList.add(contentProviderOperation);
}

try {
    getContentResolver().applyBatch(Contract.AUTHORITY, operationList);
}
// catch the exceptions


更多信息:ContentProviderOperation

09-28 07:27