android applybatch,android – 使用applyBatch插入成千上万的联系人条目很慢
我正在開發(fā)一個應(yīng)用程序,我需要插入大量的聯(lián)系人條目。在當(dāng)前時間約600個聯(lián)系人,共有6000個電話號碼。最大的聯(lián)系人有1800個電話號碼。
截至今天的狀態(tài)是,我創(chuàng)建了一個自定義帳戶來保存聯(lián)系人,因此用戶可以選擇在聯(lián)系人視圖中查看聯(lián)系人。
但是插入的觸點(diǎn)是痛苦的慢。我使用ContentResolver.applyBatch插入聯(lián)系人。我試過不同大小的ContentProviderOperation列表(100,200,400),但總運(yùn)行時間約為。一樣。要插入所有的聯(lián)系人和數(shù)字大約需要30分鐘!
大多數(shù)問題,我發(fā)現(xiàn)有關(guān)慢插入SQlite啟動事務(wù)。但是,由于我使用ContentResolver.applyBatch方法我不控制這一點(diǎn),我假設(shè)ContentResolver負(fù)責(zé)為我的事務(wù)管理。
所以,對我的問題:我做錯了,或有什么我可以做的,以加速這個?
安德斯
編輯:
@jcwenger:
原來如此。很好的解釋!
所以,然后我將不得不先插入到raw_contacts表,然后使用名稱和數(shù)字的datatable。我會失去的是對我在applyBatch中使用的raw_id的反向引用。
所以我必須得到所有的新插入的raw_contacts行的id,以用作數(shù)據(jù)表中的外鍵?
總結(jié)
以上是生活随笔為你收集整理的android applybatch,android – 使用applyBatch插入成千上万的联系人条目很慢的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Change Unidirectiona
- 下一篇: 掌控谈话~重复对方的话