我正在做一个使用sqlite数据库的应用程序我的应用程序中有一个功能,它有一个“更新数据库”按钮。
当用户点击“更新数据库”按钮时,我需要使用URL中的新db文件升级旧的db文件。
如何做到这一点。研究告诉我,我们不能更改数据库,因为它在.apk文件中。 对此有什么解决方案吗? 请帮帮我。 谢谢。
答案 0 :(得分:3)
只需使用下载管理器从URL下载db文件并将文件复制到此路径
即可 /data/data/<YOUR PACKAGE NAME>/databases/
它会自动更新。我已经使用过它并正在使用
答案 1 :(得分:3)
private void importDatabase(String inputFileName) throws IOException
{
InputStream mInput = new FileInputStream(inputFileName);
String outFileName = YOUR_DB_PATH_HERE;
OutputStream mOutput = new FileOutputStream(outFileName);
byte[] mBuffer = new byte[1024];
int mLength;
while ((mLength = mInput.read(mBuffer))>0)
{
mOutput.write(mBuffer, 0, mLength);
}
mOutput.flush();
mOutput.close();
mInput.close();
}
编辑: 您可能会觉得它很有用:
答案 2 :(得分:0)
首次启动应用程序时,您应该将数据库复制到apk文件中的外部/内部存储中。 当您需要更新(使用语句或替换整个数据库)时,您可以在内部/外部存储器中运行而不会出现问题。 当您更新应用程序时(可能新应用程序内部有新的数据库),在第一次启动新应用程序时,您应该替换存储在内部/外部存储器中的数据库。