如何在Android中关闭数据库连接

时间:2012-01-05 23:29:44

标签: android sqlite

目前正在研究android项目的数据库部分。该项目的主要目的是解析XML文件并将数据库存储为其解析。我打开数据库并将数据插入数据库。但是当我尝试更改活动时,它会在数据库的close()函数上崩溃。 我知道我在这里做错了什么。如果有人能在这里帮助我,那就太好了。

/ * DatabaseManager.java * /

    SQLiteDatabase db;
public DatabaseManager(Context context){
    this.context = context;

    db = context.openOrCreateDatabase(DATABASE_NAME, 0, null);
    }

    public void close(){
    if ( db != null )
    {
        db.close();
    }
    }

/ ** Activity.java ** /

 public void onCreate(Bundle savedInstanceState) {

    try{
        super.onCreate(savedInstanceState);
        DB = new DatabaseManager(this);
     }
  }

 public void onDestroy(){
     super.onDestroy();

    if(DB!=null)
        DB.close();
 }

错误:

 E/Database(676): close() was never explicitly called on database '/data/data/org.com.android/databases/MainSQLite.db' 
enter code here

2 个答案:

答案 0 :(得分:1)

查看你的代码,你正在关闭Db,因为你正在调用super.onDestroy();在代码调用db.close()方法之前。

尝试在onDestroy()方法之外调用它。

答案 1 :(得分:0)

这就是im duing: - )

private DbHelper ourHelper;



private static class DbHelper extends SQLiteOpenHelper{

    public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }}

public void close(){
     ourHelper.close();
 }