2

AndroidのonCreateメソッドとonOpenメソッドとSQLiteデータベース管理の間には多くの関係があります。

私はiOS開発者であり、Androidで使用できるように、ココアライブラリを(いわば)「翻訳」しようとしています。実行時にSQLiteデータベースを作成する必要があります。これは私が作成しているライブラリであるため、アクティビティはありません。アクティビティなしではDBを作成できないようですが、これは正しいですか?

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 に答える