Android SQLite数据库比较

时间:2014-02-04 22:22:19

标签: android sqlite android-sqlite

有没有办法检查android SQLite DB是否已被更改?

也可以这种格式使用:

if (isChanged){
        POST data
      }else{
         Log.i("no changes")
      }

由于

2 个答案:

答案 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进行比较。

How to generate an MD5 checksum for a file in Android?