在Android库中创建SQLite DB

时间:2012-07-04 17:52:01

标签: android sqlite

我在Android中看到了onCreate和onOpen方法以及SQLite数据库管理之间的很多联系。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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;
}

}