java - 如何更新存储在 Assets 文件夹Android中的数据库

标签 java android database sqlite assets

如何重新复制存储在 assets 文件夹中的数据库以用于 android studio 项目?

我正在使用 Android SQLite Assets 助手类

package com.acorney.migration;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

/**
* Created by acorney on 25/07/2016.
*/
public class databaseHelper extends SQLiteAssetHelper {

private static final String TAG = SQLiteAssetHelper.class.getSimpleName();
private static final String DATABASE_NAME = "peopleDatabase.db";
private static final int DATABASE_VERSION = 1;

public databaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

然后我在我的 MainActivity 中创建了它的一个实例

databaseHelper dataB;
dataB = new databaseHelper(this);

我认为,这会在 data/data 中创建一个空数据库,并将数据库从 Assets 复制到其中

但是,我已经从应用程序外部(使用 SQLite 浏览器)更新了数据库并将其保存回 Assets 文件夹。 如何将数据库的更新复制到应用程序中?

最终,应用程序需要读取和写入此数据库 - 以便将更改保存到 Assets 文件夹中的数据库

而且,当应用程序启动时,应用程序应该只在 Assets 文件夹中创建一个新的数据库实例。

基本上 - 我希望所有数据库更改都发生在 Assets 文件夹中 - 这可以做到吗?

谢谢你的帮助

最佳答案

不,这是不可能的。 Assets 文件夹是二进制 APK 的一部分,无法在运行时更改。您只能在编译时更改它。

关于java - 如何更新存储在 Assets 文件夹Android中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587063/

相关文章:

sql-server - 是否有永远不会使用的主键列的原因?

database - 如何创建命名空间和设置

java - 基于垂直搜索栏调整图像大小?

java - 在关闭远程桌面连接时运行 s/w

Android MediaPlayer 在某些平台上不播放声音

java - Android:如何在不从数组列表中删除数据的情况下清除 ListView ?

java - 如何从引用的java项目访问静态资源(WEB-INF)文件夹中的文件?

java - 是否有在 Spring 上下文 XML 文件中创建字符串常量的简写?

android - 如何将 Coldfusion 网站转换为 Native Mobile 应用程序

MYSQL 行到列使用 CASE、GROUP BY...不同版本怎么样?