Eine Datenbank mit mehreren Activites

M

Mo3bius

Neues Mitglied
0
Hi,
ich arbeite mich gerade in die Nutzung der SQLLite Datenbank ein. Bis jetzt kann ich in einer Activity die Datenbank nutzen (SQLiteOpenHelper). Ich möchte die Datenbank aber auch in einer anderen Activity der gleichen App nutzen. Wie mache ich das am besten?

Im Moment habe ich in meiner Activity eine Instanz meiner SQLHelper-Klasse. Muss ich dann in der neuen Actity auch wieder eine solche erstellen? :confused:
 
Mo3bius schrieb:
Im Moment habe ich in meiner Activity eine Instanz meiner SQLHelper-Klasse. Muss ich dann in der neuen Actity auch wieder eine solche erstellen? :confused:
Genau, neue Activity, neue DB Verbindung.
Vergiss nicht, die Verbindung zur DB wieder zu schließen, wenn diese nicht mehr benötigt wird.

MfG
 
Du kannst den SQLHelper global machen, dann brauchst du nicht immer neue Instanzen zu erstellen. Aber die DB öffnen und schließen solltest du schon von jeder Activity aus (und auch onPause und onResume nicht vergessen).
 
Habe der zweiten Activity auch noch eine Instanz hinzugefügt. Damit funktioniert alles wunderbar. :thumbup:

Die Datenbak öffne ich in onCreate() und onResume(). Ist das problematisch? Schliessen tue ich sie in onPause().

Du kannst den SQLHelper global machen, dann brauchst du nicht immer neue Instanzen zu erstellen.

Etwa so?

Code:
public class DBhelper extends SQLiteOpenHelper{
    
    public static SQLiteDatabase myDataBase;
...
}

Macht es einen merkbaren Unterschied für die Performance oder eher nicht? Nicht das ich später mit einer größeren Datenbank mal Probleme bekomme.
 
Ich öffne die Datenbank immer nur kurz vor dem Zugriff und schließe sie sobald ich den Cursor nicht mehr benötige. Das hat den Vorteil, dass du weniger potenzielle Datenbankzugriffskonflikte bekommst, falls du mal mit mehreren threads oder anderweitig außerhalb des UI-Threads arbeitest. (Zum Beispiel mit loadern.)

Gruß
Schwede
 
Man könnte doch die Verbindung zu der Datenbank in einer seperaten Klasse aufbauen und diese sich dann mit einer statischen Methode holen, wenn man diese benötigt. So hätte man doch immer die selbe Verbindung (Singelton) und könnte sich diese in jeder Activity holen.
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.666
Sempervivum
S
R
Antworten
4
Aufrufe
729
Rapidoman
R
B
Antworten
4
Aufrufe
487
bb321
B
Zurück
Oben Unten