【发布时间】:2011-05-25 11:09:39
【问题描述】:
我正在做一个使用资产文件夹中的 sqlite db 文件的应用程序,我的应用程序中有一个屏幕有一个按钮“检查更新”。
客户给了我一个更新 db 文件的 URL 链接(它提供了一个 sqlite 文件)。
当用户点击按钮时,我需要使用来自 URL 的新 db 文件升级旧 db 文件。
请建议我如何做到这一点,或者给我一个参考来关注
谢谢
【问题讨论】:
我正在做一个使用资产文件夹中的 sqlite db 文件的应用程序,我的应用程序中有一个屏幕有一个按钮“检查更新”。
客户给了我一个更新 db 文件的 URL 链接(它提供了一个 sqlite 文件)。
当用户点击按钮时,我需要使用来自 URL 的新 db 文件升级旧 db 文件。
请建议我如何做到这一点,或者给我一个参考来关注
谢谢
【问题讨论】:
资产文件夹是只读的,因此您将无法更改或替换该副本。
基本上,您需要将 DB 文件从 assets 文件夹中复制到可写的应用程序目录中(可能来自 getFilesDir() 或 getExternalFilesDir())。您将在实际操作时打开此副本,当您的用户点击 UPDATE 按钮时,您将使用来自网络的新数据库替换它。因为 SQLite 数据库只是一个文件,所以删除旧的并用新的替换它是没有问题的。 (删除前先关闭旧的,当然是为了清洁。)
【讨论】: