ContentResolver删除多个

Xan*_*der 0 java sql android android-contentresolver android-calendar

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

getContentResolver().delete(Events.CONTENT_URI, Events._ID + " =? ", eventId);
Run Code Online (Sandbox Code Playgroud)

其中 eventId 是String array包含(在本例中为事件)的 ID。就我而言,我不想删除一个事件,而是多个事件。所以我有一个包含多个 eventId 的 eventId 数组。我当然可以循环遍历数组并一一删除事件,但是是否也可以仅使用一次调用来删除它们?

daz*_*ito 5

试试这个代码,

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
Run Code Online (Sandbox Code Playgroud)

更多信息:ContentProvider操作