我在Android中看到了onCreate和onOpen方法以及SQLite数据库管理之间的很多联系。
我是一名iOS开发人员,我正试图“翻译”(可以这么说)我的可可库,因此可以在Android上使用它。我需要在运行时创建一个SQLite数据库。我没有活动 - 因为这是我正在创建的库。我似乎无法在没有活动的情况下创建数据库,这是正确的吗?
答案 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;
}
}