与ContentProvider的连续事务



我有一个巨大的XML文件(超过20 Mb),我不能改变它的格式。它代表DB。在固定的时间内,它可能会发生变化,我必须更新设备上所有变化的数据。

我使用SyncAdapter通过ContentProvider将大量数据从XML传输到SQLite。我不能使用applyBatch(),因为我不能保持所有的数据在内存中,我想使用以下方法:

    开始nonExclusiveTransaction
  1. 我想清除DB中的所有表(搜索删除,更新和创建的记录很慢)

  2. 使用SAX解析器解析XML并在出现时立即插入行

  3. 提交事务

我找不到在ContentProvider之外开始和提交事务的方法。我应该寻找一种不同的方式来保存记录在ContentProvider从一个20 Mb的XML文件?

你可以通过调用

来获取对ContentProvider实现的引用
acquireContentProviderClient(authority)

看这个SO答案

之后,只需转换对象,acquireContentProviderClient返回到您的自定义ContentProvider和调用您的方法,开始和结束事务。

相关内容

  • 没有找到相关文章

最新更新