有没有办法检查android SQLite DB是否已被更改?
也可以这种格式使用:
即
if (isChanged){
POST data
}else{
Log.i("no changes")
}
由于
答案 0 :(得分:1)
一个简单的解决方案:您可以创建一个Windows服务,或者只发布一个包含校验和的{.xml文件<checksum>3203025</checksum>
http://prueba.agenciareforma.com/appiphone/android/checksumdb.xml
<?xml version="1.0" encoding="UTF-8"?>
<mobiledb>
<nombre>Stiri IASI</nombre>
<urlDB>http://jorgesys.com/appiphone/android/stiridb.db</urlDB>
<checksum>3203025</checksum>
</mobiledb>
在应用对数据库的更改http://jorgesys.com/appiphone/android/stiridb.db
已更改时,校验和会发生更改。
然后检查实际校验和是否与最后一个校验和不同,因此请使用新更改下载数据库。
一个例子:
//method readUrlDatabaseChecksum(), download and parse the currently value of checksum from the .xml file
String checksumDB = readUrlDatabaseChecksum();
//method readDBChecksum(), get the stored value (preferences or db) of the las checksum.
String lastDBChecksum = readDBChecksum(); //dbm.obtenerCheckSum(seccion.getId());;
//If the values are different proceed to download the new version of the Database.
if(!checksumFeed.equals(checksumDB)){
Log.i(TAG, "*** Downloading new Database!");
//method downloadDatabase(), download the new version of the database.
downloadDatabase();
//method saveDBChecksum(), save the new value (preferences or db) of the las checksum.
saveDBChecksum();
}else{
Log.i(TAG, "*** Database hasn´t changed!");
}
答案 1 :(得分:0)
我还没有找到任何API,但另一个选项是获取sqlite文件的MD5值并与上一个MD5进行比较。