1

如果插入 100 个 calllog 失败,如何回滚?Android是否提供了类似的方法?

ArrayList<ContentValues> lstValues = new ArrayList<ContentValues>();
        for(SmsItem smsItem : data){
            ContentValues values = new ContentValues(); 
            long threadId = getOrCreateThreadId(mContext, new String[] {smsItem.address});
            values.put(THREAD_ID, threadId);
            values.put(ADDRESS, smsItem.address);
            values.put(DATE, smsItem.date*1000L);
            values.put(TYPE, smsItem.tpye);
            values.put(BODY, smsItem.body);
            values.put(READ,smsItem.read );
            lstValues.add(values);
        } 
        Uri uri = Uri.parse(SMS_URI);

        int count = mContext.getContentResolver().bulkInsert(uri,
                lstValues.toArray(new ContentValues[lstValues
                                                    .size()]) );//if here is failed,how rollback?
4

1 回答 1

0

为此,您需要使用事务执行数据库操作。使用 Transaction,您可以有效地执行大量插入,并且在出现任何错误时可以回滚。

有关更多详细信息,请查看此链接

于 2013-09-23T12:11:05.113 回答