Android, когда использовать ContentResolver applyBatch или BulkInsert

Прямо сейчас для моего приложения, когда я хочу изменить данные для моего ContentProvider, я просто использую методы ContentResolver для вставки, обновления и удаления. Но по нескольким образцовым проектам в Android SDK я замечаю, что они используют applyBatch или BulkInsert. Поэтому я хочу знать, когда использовать любой из этих методов и каковы преимущества использования их над тем, что я делаю сейчас.

Поставщики контента могут иметь наблюдателей, таких как курсоры, которые уведомляются каждый раз, когда происходит вставка, обновление или удаление. Обычно это приводит к некоторой работе по обновлению пользовательского интерфейса. При одновременном применении нескольких операций это может привести к повторным обновлениям наблюдателей. В общем случае, если у вас есть несколько вложений, обновлений или удалений для выполнения, более эффективно делать их навалом.

При этом метод ContentProvider.applyBatch () по умолчанию просто выполняет итерацию по партии и применяет их индивидуально. Автор ContentProvider должен переопределить это и применить его более эффективно, чтобы воспользоваться пакетными операциями.

Просто чтобы добавить более подробную информацию о том, что сказал jsmith, заключается в том, что BulkInsert не будет транзакционным, а applyBatch да, поэтому, если вы хотите, чтобы группа операций применялась транзакционным способом, используйте applyBatch.