目前正在研究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
答案 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();
}