我正在做一个使用 sqlite 数据库的应用程序我的应用程序中有一个功能有一个按钮“更新数据库”。
当用户单击“更新数据库”按钮时,我需要使用来自 URL 的新 db 文件升级旧 db 文件。
这个怎么做。研究告诉我,我们无法更改 db,因为它位于 .apk 文件中。有没有办法解决这个问题。请帮帮我。谢谢你。
我正在做一个使用 sqlite 数据库的应用程序我的应用程序中有一个功能有一个按钮“更新数据库”。
当用户单击“更新数据库”按钮时,我需要使用来自 URL 的新 db 文件升级旧 db 文件。
这个怎么做。研究告诉我,我们无法更改 db,因为它位于 .apk 文件中。有没有办法解决这个问题。请帮帮我。谢谢你。
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();
}
编辑:
您可能会发现它很有帮助:
只需使用下载管理器从 URL 下载 db 文件并将文件复制到此路径
/data/data/<YOUR PACKAGE NAME>/databases/
它会自动更新。我已经使用了这个并且正在工作
在您的应用程序首次启动时,您应该将数据库从 apk 文件中复制到外部/内部存储中。当您需要更新(使用语句或通过替换整个数据库)时,您可以毫无问题地在内部/外部内存中操作。当您更新您的应用程序(并且可能新应用程序内部有一个新数据库)时,在新应用程序首次启动时,您应该替换您存储在内部/外部存储器中的数据库。