我正在开发一款使用SQLite数据库的Android游戏。为了验证数据库是否正确下载,我使用MD5。它工作正常,我的问题是当我对数据库进行查询时:MD5更改但数据库大小保持不变。有没有人知道为什么它改变MD5如果我不插入既不更新?我只选择。 有没有办法检查数据库是否与所有设备一起正确?
//安装时的MD5->
11-10 20:04:17.722:I / DebugCayroDev(4853):{MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAFF0和file md5:2488c4cd2f70337ba21e4ca03edeaff0
//大小相同
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} 2488C4CD2F70337BA21E4CA03EDEAFF0和file md5:67d0b72e0d375ee0c5578331c4b74802
答案 0 :(得分:0)
正如其他人所说,你不能依赖数据库文件的哈希来告诉你它是否已被更新。
我能想到的唯一建议是在数据库中添加一个表,其中包含数据库上次更新的时间戳。无论何时更新,服务器端的数据库都必须以任何方式更新数据库时更新该时间戳。
然后,您可以比较本地和服务器时间戳以查看版本是否匹配