我正在开发一个使用SQLite数据库的安卓游戏。要验证数据库是否正确下载,我使用MD5。它工作得很好,我的问题是当我对数据库进行查询时: MD5更改了,但是数据库大小保持不变。如果我不插入两个更新,那么有人知道为什么它会改变MD5吗?我只做选择。是否有一种方法来检查数据库是否与所有设备都正确?
安装时// MD5 ->
11-10 20:04:17.722: I/DebugCayroDev(4853):{MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAF0和文件md5: 2488c4cd270337ba21e4ca03edeaff0
//大小相同
11-10 20:04:46.212: V/DebugCayroDev(4853):{MD5.java checkMD5} 2113748992
// MD5在完成选择之后
11-10 20:04:46.212: I/DebugCayroDev(4853):{MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAF0和文件md5: 67d0b72e0d375ee5578331c74802
发布于 2013-11-10 23:33:57
正如其他人所说的,您不能依赖数据库文件的散列来告诉您它是否已经更新。
我能想到的唯一建议是向数据库中添加一个表,该表包含数据库上一次更新的时间戳。无论服务器端的数据库是什么更新,只要它以任何方式更新数据库,都必须更新时间戳。
然后,您可以比较本地和服务器时间戳,以确定版本是否匹配。
https://stackoverflow.com/questions/19894003
复制相似问题