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(我的应用程序中的一个活动或片段):
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(我的应用程序中的一个活动或片段):
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 就足够了?哪个是最佳实践?