8

我正在做一个使用 sqlite 数据库的应用程序我的应用程序中有一个功能有一个按钮“更新数据库”。

当用户单击“更新数据库”按钮时,我需要使用来自 URL 的新 db 文件升级旧 db 文件。

这个怎么做。研究告诉我,我们无法更改 db,因为它位于 .apk 文件中。有没有办法解决这个问题。请帮帮我。谢谢你。

4

3 回答 3

5
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();
}

编辑:

您可能会发现它很有帮助:

如何将现有数据库与 Android 应用程序一起使用

于 2013-02-04T11:42:55.747 回答
3

只需使用下载管理器从 URL 下载 db 文件并将文件复制到此路径

         /data/data/<YOUR PACKAGE NAME>/databases/

它会自动更新。我已经使用了这个并且正在工作

于 2013-02-04T11:38:26.473 回答
1

在您的应用程序首次启动时,您应该将数据库从 apk 文件中复制到外部/内部存储中。当您需要更新(使用语句或通过替换整个数据库)时,您可以毫无问题地在内部/外部内存中操作。当您更新您的应用程序(并且可能新应用程序内部有一个新数据库)时,在新应用程序首次启动时,您应该替换您存储在内部/外部存储器中的数据库。

于 2013-02-04T11:22:55.697 回答