我已经看到 onCreate 和 onOpen 方法与 Android 中的 SQLite 数据库管理之间有很多联系。
我是一名 iOS 开发人员,我正在尝试“翻译”(可以这么说)我的可可库,以便可以在 Android 上使用它。我需要在运行时创建一个 SQLite 数据库。我没有活动 - 因为这是我正在创建的图书馆。似乎我无法在没有活动的情况下创建数据库,这是正确的吗?
要创建sqlite db,您基本上不需要库中的活动。它需要一个上下文!!,您可以在库/类中有一个方法,它基本上在输入/参数中获取一个上下文并创建数据库。
此上下文可以从应用程序活动或服务或接收器传递。
我不明白为什么没有活动就不能打开数据库。您需要扩展 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;
}
}