每次您想做某事时都必须不断地重新连接到数据库是低效的,因此从每一行中删除 close() 语句并创建 DB Handler 类的单个实例:
最好有一个 DBHandler
DBHandler db;
public Activity/Class Constructor()
{
DBHandler db = new DBHandler(this);
}
private void DoSomethingWithDatabase()
{
db.doSomethingHere();
}
private void DoSomethingWithDatabaseAgain()
{
db.doSomethingThere();
}
public void Activity/ClassClose()
{
db.CloseDatabase();
}
Activity/Class 正在使用它的实例,然后在 DBHandler 中有一个 close 方法,该方法在 Activity/Class 完成使用它后关闭与数据库的连接。
public class DBHandler
{
private static SQLiteDatabase m_DB;
public DBHandler open() throws android.database.SQLException
{
m_DB = m_DBHelper.getWritableDatabase();
}
public void doSomethingHere()
{
m_DB.getAllBlock()
}
public void doSomethingThere()
{
m_DB.getAllSomethingElse()
}
public void CloseDatabase()
{
m_DB.close();
}
}
事实上,将 DBHandler 作为 Singleton 更好,这样您就可以访问应用程序范围的数据库,而无需每次都重新建立连接的低效开销。