DBHelper.java
public class DBHelper extends SQLiteOpenHelper{
public DBHelper(Context context) {
super(context, DBConstants.DATABASE_NAME, null,DBConstants.DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DBConstants.CREATE_LOGINTABLE);
db.execSQL(DBConstants.CREATE_DATA_TABLE);
db.execSQL(DBConstants.CREATE_LATEST_DATA_TABLE);
db.execSQL(DBConstants.CREATE_ALERTS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DBConstants.DELETE_LOGINTABLE);
db.execSQL(DBConstants.DELETE_DATA_TABLE);
db.execSQL(DBConstants.DELETE_LATEST__DATA_TABLE);
db.execSQL(DBConstants.DELETE_ALERTS_TABLE);
onCreate(db);
}
@Override
public synchronized void close() {
super.close();
}
}
Class1(アプリケーションの私のアクティビティまたはフラグメントの1つ):
DBHelper myDbHelper=new DBHelper(context);
SQLiteDatabase myDB = myDbHelper.getWritableDatabase();
Cursor c1= myDB.query(DBConstants.LATEST_DATA_TABLE,mycolumns, null, null, null, null, null);
/* is it correct */
c1.close();
myDB.close();
myDbHelper.close();
/* is it correct */
Class2(アプリケーションの私のアクティビティまたはフラグメントの1つ):
DBHelper myDbHelper=new DBHelper(context);
SQLiteDatabase myDB = myDbHelper.getWritableDatabase();
Cursor c1= myDB.query(DBConstants.LATEST_DATA_TABLE,mycolumns, null, null, null, null, null);
/* is it correct */
c1.close();
myDB.close();
myDbHelper.close();
/* is it correct */
ここで、すべてのc1、myDB、myDbHelperオブジェクトを閉じるか、c1を閉じてmyDbHelperで十分ですか?ベストプラクティスはどれですか?