Android 的apk在覆盖安装的时如何重新读取sqlite数据库

Android 的apk在覆盖安装的时如何重新读取raw或assets目录下的sqlite数据库?Android 的新版本的apk在覆盖安装的时如何重新读取raw或assets目录下的sqlite数据库,在新版中可能修改了sqlite数据库中的某些表,增加或删除了某些字段,因此需要在DBOpenHelper类中修改数据库版本VERSION和onUpgrade方法,先删除掉原来的表,再重新执行onCreate方法中的建表语句,然后再将sqlite数据库中的数据读入到"/data/data/" + context.getPackageName() +"/databases";中,为什么读入的所有数据都为空?关键代码如下:CopyDB(ac.getBaseContext().getAssets().open("db1"),new FileOutputStream(destPath + "/db1.db"));//读入assets目录下的db1数据库public void CopyDB(InputStream inputStream, OutputStream outputStream) throws IOException { //---copy 1K bytes at a time--- byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, length); } inputStream.close(); outputStream.close(); }AndroidSQLite

给一个版本号新的数据库,然后检查如果不是最新的版本号的话,就将之前的删掉,然后再拷贝
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-25
覆盖安装貌似不会删掉数据库吧
相似回答