在Android中使用数据库存储数据,查询时已经能查到,设备掉电关机再打开,发现已经存上的数据丢了一部分,现在怀疑是sqlite执行再闪存中,未来得及同步到磁盘,掉电导致数据丢失。
解决方案,将数据库同步模式改为全量同步。litepal未提供这个配置,在初始化之后直接调用sql语句也能实现。
LitePal.initialize(this)
//更改同步模式,避免掉电数据丢失
LitePal.getDatabase().execSQL("PRAGMA synchronous = FULL;")