Datenbankmanagement zentral in einer Subclass von Application

  • 3 Antworten
  • Letztes Antwortdatum
E

enrem

Erfahrenes Mitglied
29
Hallo,

ich möchte meine Datenbank an einer zentralen Stelle öffnen und schließen. Am liebsten nicht in jeder Activity sondern in einer Subklasse von Application.

In der Subclass von Application öffne ich die Datenbank in der onCreate(). Wo schließe ich diese am besten. Die onTerminate() ist nur für den Emulator. Im Gerät selbst behält Android die App so lange im Speicher bis dieser zu klein wird.

Kann mir jemand sagen an welcher Stelle ich die Datenbank am besten schließe?

Evtl. in der onLowMemory() ???

Wie geht Ihr mit der Datenbank um?
 
Davon würd ich abraten. Ich würde die Datenbankverbindung schliessen sobald du alle nötigen Daten ausgetauscht hast (so früh als möglich).
 
Ich hol mir im onCreate immer eine Instanz meiner DBHelper-Klasse. Die DBHelper-Klasse macht beim executeSQL immer ein Check, ob die DB offen ist oder nicht, wenn nein, wird sie automatisch geöffnet. Somit muß ich die DB-Verbindung in meiner Activity nur noch schließen, was ich in onPause immer mache. Damit sollte ich eigentlich auf der sicheren Seite sein :)
 
Vielen Dank, ich werde es dann so machen wie Tom299 es anwendet.
 
Zurück
Oben Unten