我是Android编程的新手,我刚刚开始涉足使用sqlite数据库。在我的应用程序中,我在onpause和ondestroy关闭数据库。
但是,在使用该应用程序时,我尝试在关闭数据库/应用程序一段时间后重新打开数据库/应用程序,但仍然出现错误“无法打开已关闭的数据库”?
请帮忙。这是java文件的摘录;
public class Apple extends Activity {
DbA myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.apple_layout);
openDB();
}
private void openDB() {
myDb= new DbA(this);
myDb.open();
}
@Override
protected void onDestroy() {
super.onDestroy();
myDb.close();
}
@Override
protected void onResume() {
super.onResume();
myDb.open();
}
@Override
protected void onPause() {
super.onPause();
myDb.close();
}
请告诉我我做错了什么。
答案 0 :(得分:0)
在我看来,没有必要在活动的整个生命周期中保持开放的数据库连接。
当我要执行某个操作时,我通常会使用可写数据库,并在完成时关闭。
例如,要添加记录,您可以使用以下方法
public void addItem(Item item) {
if (item == null) {
return;
}
// get writable database and begin transaction
final SQLiteDatabase database = dbHelper.getWritableDatabase();
database.beginTransaction();
// INSERT ITEM IN DATABASE
// End transaction and close connection
database.setTransactionSuccessful();
database.endTransaction();
database.close();
}