如何在OrmLite中交换SQLite文件?

时间:2015-02-19 00:06:54

标签: android android-sqlite ormlite

我有一个依赖sqlite数据库的android应用程序,并使用OrmLite来访问我的数据库。

而不是OrmLite创建表我依赖从中央服务器下载数据库,因为用户通常希望同步"同步"的东西。目前我没有写出花哨的同步代码,因此应用程序会替换数据库。步骤是:

1以zip格式从服务器下载最新的SQLite db文件 2展开文件以在临时文件夹中生成database.sqlite文件 3删除包含live database.sqlite文件的数据文件夹的内容 4将database.sqlite文件从临时文件夹移动到数据文件夹。

问题是新数据库文件似乎被忽略,我运行的DAO查询返回旧数据。从新版本的数据库显示数据的唯一方法是重新启动应用程序。

为了测试我创建了一个带有时间戳的表,该时间戳记录了生成数据库的时间,每次从服务器请求sqlite数据库的新副本时都会更新。我有一个显示此时间的片段,因此您可以了解数据的新鲜程度。在片段onResume方法中,我调用DAO来获取时间戳并将值放在屏幕上。我已经完成了这个步骤,我看到了对DAO的调用,但是返回的值来自旧的,现在已删除的数据库。重新启动应用程序并显示正确的值。

所以我的问题是,如果我替换存储我的数据库的底层sqlite db文件,我怎么能告诉ormlite拿起它或刷新连接或者它必须做什么???

我尝试在DAO上调用clearObjectCache,没有任何区别。

0 个答案:

没有答案