我有一个巨大的 XML 文件(超过 20 Mb),我无法更改它的格式。它代表数据库。在固定的时间段内它可能会发生变化,我必须更新设备上所有更改的数据。
我正在使用 SyncAdapter 通过 ContentProvider 将大量数据从 XML 传输到 SQLite。我不能使用applyBatch(),因为我不能将所有数据都保存在内存中,我想使用以下方法:
启动 nonExclusiveTransaction
我想清除数据库中的所有表(搜索已删除、更新和创建的记录很慢。)
使用 SAX 解析器解析 XML 并在行出现时立即插入
提交事务
我找不到在 ContentProvider 之外开始和提交事务的方法。我应该寻找一种不同的方法来从 20 Mb XML 文件中保存 ContentProvider 中的记录吗?