2012-02-20 27 views
12

Ngay bây giờ cho ứng dụng của tôi khi tôi muốn thay đổi dữ liệu cho Trình ContentProvider, tôi chỉ sử dụng các phương pháp chèn, cập nhật và xóa ContentResolver. Nhưng trên một vài dự án mẫu trong SDK Android, tôi nhận thấy họ sử dụng applyBatch hoặc BulkInsert. Vì vậy, tôi muốn biết khi nào nên sử dụng một trong những phương pháp này và những lợi thế của việc sử dụng chúng trên những gì tôi đang làm bây giờ là gì.Android khi sử dụng ContentResolver applyBatch hoặc BulkInsert

Trả lời

12

Nhà cung cấp nội dung có thể có người quan sát, chẳng hạn như Cursors, được thông báo mỗi lần chèn, cập nhật hoặc xóa xảy ra. Thông thường kết quả này trong một số công việc đang được thực hiện để cập nhật giao diện người dùng. Khi bạn có nhiều thao tác để áp dụng cùng một lúc, điều này có thể dẫn đến các cập nhật lặp đi lặp lại bởi các nhà quan sát. Nói chung, nếu bạn có nhiều lần chèn, cập nhật hoặc xóa để thực hiện, sẽ hiệu quả hơn khi thực hiện hàng loạt.

Điều đó đang được nói, phương thức ContentProvider.applyBatch() mặc định chỉ lặp lại theo lô và áp dụng chúng theo cách riêng lẻ. Tác giả của ContentProvider phải ghi đè điều này và áp dụng nó hiệu quả hơn để tận dụng lợi thế của các hoạt động hàng loạt.

5

Chỉ cần thêm thông tin chi tiết về những gì jsmith nói, là BulkInsert sẽ không được giao dịch trong khi applyBatch có, vì vậy nếu bạn muốn đảm bảo một nhóm hoạt động được áp dụng theo cách giao dịch, hãy sử dụng hàm applyBatch.

+0

Nếu bạn đang tạo lớp 'ContentProvider' của riêng mình, bạn có thể ghi đè' bulkInsert' để các giao dịch được sử dụng. –

Các vấn đề liên quan