1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Eine Datenbank mit mehreren Activites

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Mo3bius, 16.02.2012.

  1. Mo3bius, 16.02.2012 #1
    Mo3bius

    Mo3bius Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    14.11.2011
    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:
     
  2. Sentence, 16.02.2012 #2
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    Genau, neue Activity, neue DB Verbindung.
    Vergiss nicht, die Verbindung zur DB wieder zu schließen, wenn diese nicht mehr benötigt wird.

    MfG
     
  3. Tom299, 16.02.2012 #3
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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).
     
  4. Mo3bius, 16.02.2012 #4
    Mo3bius

    Mo3bius Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    14.11.2011
    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().

    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.
     
  5. Schwede, 18.02.2012 #5
    Schwede

    Schwede Neuer Benutzer

    Beiträge:
    20
    Erhaltene Danke:
    0
    Registriert seit:
    26.04.2011
    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
     
  6. androidler1, 19.02.2012 #6
    androidler1

    androidler1 Android-Experte

    Beiträge:
    611
    Erhaltene Danke:
    79
    Registriert seit:
    17.12.2010
    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.
     

Diese Seite empfehlen