【问题标题】:Android when to use ContentResolver applyBatch or BulkInsertAndroid 何时使用 ContentResolver applyBatch 或 BulkInsert
【发布时间】:2014-08-29 22:16:07
【问题描述】:

现在对于我的应用程序,当我想更改我的 ContentProvider 的数据时,我只使用 ContentResolver 的插入、更新和删除方法。但在 Android SDK 中的几个示例项目中,我注意到它们使用 applyBatch 或 BulkInsert。所以我想知道什么时候使用这两种方法,以及使用它们与我现在所做的相比有什么优势。

【问题讨论】:

    标签: android android-contentprovider


    【解决方案1】:

    内容提供者可以有观察者,例如游标,每次插入、更新或删除发生时都会收到通知。通常这会导致需要做一些工作来更新 UI。当您同时应用多个操作时,这可能会导致观察者重复更新。一般来说,如果您要执行多个插入、更新或删除操作,批量执行这些操作效率更高。

    话虽如此,默认的 ContentProvider.applyBatch() 方法只是简单地迭代批处理并无论如何单独应用它们。 ContentProvider 的编写者必须覆盖它并更有效地应用它以利用批处理操作。

    【讨论】:

      【解决方案2】:

      只是添加更多关于 jsmith 所说的细节,即 BulkInsert 不会是事务性的,而 applyBatch 是的,所以如果您想确保以事务方式应用一组操作,请使用 applyBatch。

      【讨论】:

      • 如果您正在创建自己的ContentProvider 类,您可以覆盖bulkInsert 以便使用事务。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      相关资源
      最近更新 更多