jjzjj

applyBatch

全部标签

Android sqlite begintransaction 执行时间过长

我想把json解析出来的数据批量插入到db中。我使用下面的方法插入批处理。问题是mDbWritable.beginTransaction();执行时间太长。通常像6秒!我不知道问题在哪里。一些想法是什么导致执行时间这么长?非常感谢。@OverridepublicContentProviderResult[]applyBatch(ArrayListoperations)throwsOperationApplicationException{longstart=System.currentTimeMillis();mDbWritable.beginTransaction();longtim

android - 使用 applyBatch 插入数千个联系人条目很慢

我正在开发一个需要插入大量联系人条目的应用程序。目前大约有600个联系人,总共有6000个电话号码。最大的联系人有1800个电话号码。截至今天的状态是我创建了一个自定义帐户来保存联系人,因此用户可以选择在联系人View中查看联系人。但是触点的插入速度非常缓慢。我使用ContentResolver.applyBatch插入联系人。我尝试了不同大小的ContentProviderOperation列表(100、200、400),但总运行时间约为。相同。插入所有联系人和号码大约需要30分钟!我发现的关于SQlite中缓慢插入的大多数问题都会引发事务。但由于我使用ContentResolver

android - 使用 applyBatch 插入数千个联系人条目很慢

我正在开发一个需要插入大量联系人条目的应用程序。目前大约有600个联系人,总共有6000个电话号码。最大的联系人有1800个电话号码。截至今天的状态是我创建了一个自定义帐户来保存联系人,因此用户可以选择在联系人View中查看联系人。但是触点的插入速度非常缓慢。我使用ContentResolver.applyBatch插入联系人。我尝试了不同大小的ContentProviderOperation列表(100、200、400),但总运行时间约为。相同。插入所有联系人和号码大约需要30分钟!我发现的关于SQlite中缓慢插入的大多数问题都会引发事务。但由于我使用ContentResolver

Android 何时使用 ContentResolver applyBatch 或 BulkInsert

现在对于我的应用程序,当我想为我的ContentProvider更改数据时,我只使用ContentResolver的插入、更新和删除方法。但是在AndroidSDK中的几个示例项目中,我注意到它们使用了applyBatch或BulkInsert。所以我想知道什么时候使用这两种方法中的任何一种以及使用它们与我现在正在做的事情相比有什么优势。 最佳答案 ContentProvider可以有观察者,例如游标,每次发生插入、更新或删除时都会通知它们。通常这会导致完成一些工作来更新UI。当您同时应用多个操作时,这可能会导致观察者重复更新。一般