2

我已经看到 onCreate 和 onOpen 方法与 Android 中的 SQLite 数据库管理之间有很多联系。

我是一名 iOS 开发人员,我正在尝试“翻译”(可以这么说)我的可可库,以便可以在 Android 上使用它。我需要在运行时创建一个 SQLite 数据库。我没有活动 - 因为这是我正在创建的图书馆。似乎我无法在没有活动的情况下创建数据库,这是正确的吗?

4

2 回答 2

1

要创建sqlite db,您基本上不需要库中的活动。它需要一个上下文!!,您可以在库/类中有一个方法,它基本上在输入/参数中获取一个上下文并创建数据库。

此上下文可以从应用程序活动或服务或接收器传递。

于 2012-07-04T17:56:02.063 回答
0

我不明白为什么没有活动就不能打开数据库。您需要扩展 SQLiteOpenHelper。

public class MyDatabase {
private final DatabaseHelper databaseHelper;
private SQLiteDatabase db;
private static final String DATABASE_NAME = "com.my.db";
private static final int DATABASE_VERSION = 1;

public MyDatabase(Context context) {
    databaseHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper {

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

    @Override
    public void onCreate(SQLiteDatabase db) {
                //use db.execSQL to create the database
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
               // use db.execSQL to update (modify) the database
    }
}

public SQLiteDatabase open() throws SQLException {
    db = databaseHelper.getWritableDatabase();
    return db;
}

}

于 2012-07-04T17:57:47.757 回答