2012-04-04 9 views
0

Wenn ich eine andere Tätigkeit eingeben neues Element in die Datenbank einzufügen, zurückzukehren und dann in dieser Tätigkeit geht sie mir einen Fehler gibt:Android Datenbank Leck gefunden

04-03 18:53:26.914: E/Database(18134): Leak found 
04-03 18:53:26.914: E/Database(18134): java.lang.IllegalStateException: /data/data/com.app.myapp/databases/BabyApp.db SQLiteDatabase created and never closed 
04-03 18:53:26.914: E/Database(18134): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1695) 
04-03 18:53:26.914: E/Database(18134): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:739) 
04-03 18:53:26.914: E/Database(18134): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:761) 
04-03 18:53:26.914: E/Database(18134): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:754) 
04-03 18:53:26.914: E/Database(18134): at android.app.ApplicationContext.openOrCreateDatabase(ApplicationContext.java:473) 
04-03 18:53:26.914: E/Database(18134): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:193) 
04-03 18:53:26.914: E/Database(18134): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98) 
04-03 18:53:26.914: E/Database(18134): at com.app.myapp.DatabaseHelper.open(DatabaseHelper.java:121) 
04-03 18:53:26.914: E/Database(18134): at com.app.myapp.SettingsActivity.init(SettingsActivity.java:80) 

hier ist die DatabaseHelper.java:121

database = dbHelper.getWritableDatabase(); 

hier ist die SettingsActivity Linie 80 Code:

if (!db.isOpen()) 
      db.open(); 

Antwort

2

Stellen Sie sicher,Sie ausführen, um Ihre Datenbank zu schließen, bevor

@Override 
protected void onStop() { 
    super.onStop(); 

    //closing database connection 
    if(db != null) 
     db.close(); 
} 
auf eine andere Tätigkeit Schalt
0

Sie sollten es schließen ... es schließen, wenn eine Ausnahme in jedem Fall auftritt, oder es sollte nie seit seiner Systemressource

offen gelassen werden