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
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.
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.
- 1. Android: giao dịch SQLite khi sử dụng ContentResolver
- 2. Cách sử dụng hàm bulkInsert() trong android?
- 3. Android: Khác biệt và GroupBy trong ContentResolver
- 4. ContentResolver usage
- 5. Khi nào cần sử dụng singleTop launchMode trong một widget hoặc ứng dụng Android?
- 6. Khi nào sử dụng NaN hoặc +/- Infinity?
- 7. Khi nào sử dụng Servlet hoặc @Controller
- 8. android: khi nào sử dụng onStart(), onStop()?
- 9. Khi sử dụng!() Hoặc! = Khi nếu không null
- 10. Cách sử dụng ExifInterface với luồng hoặc URI
- 11. Android Fragments: Khi nào nên sử dụng ẩn/hiện hoặc thêm/xóa/thay thế?
- 12. Có tốt hơn khi sử dụng nhiều SpanObject hoặc nhiều TextView trong Android?
- 13. Hộp thoại Android Fragment xuất hiện để bỏ qua layoutMargin hoặc layoutWidth khi sử dụng weightSum
- 14. Điều nào tốt hơn khi sử dụng Sencha Touch hoặc phonegap cho android?
- 15. Khi nào sử dụng HTML5 trong android? khi không sử dụng?
- 16. Khi nào sử dụng giao diện hoặc lớp trừu tượng? Khi nào sử dụng cả hai?
- 17. Cách tạo Danh sách phát mới bằng ContentResolver
- 18. Để sử dụng JNI, hoặc không sử dụng JNI (hiệu suất Android)
- 19. Android WebView Memory Rò rỉ khi sử dụng Assets
- 20. Android - Khi sử dụng LocationManager.requestLocationUpdates, tôi có cần WakeLock không?
- 21. Khi nào nên sử dụng tệp dimens.xml trong Android?
- 22. Trường hợp ngoại lệ khi sử dụng Xamarin Android
- 23. Tôi làm cách nào để cập nhật đường dẫn nghệ thuật album bằng cách sử dụng contentResolver?
- 24. Khi sử dụng TextFrame hoặc TextFrame2 trong VBA
- 25. Khi nào sử dụng #define hoặc hằng số char/int?
- 26. multiprocessing.Pool: Khi nào cần sử dụng, apply_async hoặc map?
- 27. Khi nào sử dụng `require`,` load` hoặc `autoload` trong Ruby?
- 28. Đồng bộ hóa, Khi nào hoặc không sử dụng?
- 29. zmq - khi nào cần sử dụng zmq_bind hoặc zmq_connect
- 30. iOS khi sử dụng biến mẫu hoặc phương thức getter
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. –