- Forum-Beiträge: 127
10.09.2012, 22:15:50 via Website
10.09.2012 22:15:50 via Website
Ich habe einen Thread in meiner App welche im Hintergrund GPS Koordinaten einsammelt und diese in einer SQLite Datenbank abspeichert. Ein anderer Thread holt sich die vorhandenen GPS Koordinaten aus der Datenbank und sendet diese über eine Socketverbindung an einen Server. Nach erfolgreichem senden der Koordinaten werden diese vom (senden)Thread aus der DB gelöscht.
Desweiteren möchte ich nun Nachrichten zwischen Client und Server austauschen, welche ebenfalls über die Socketverbindung laufen werden.
Dazu will ich die vom Server empfangenen Nachrichten in einer ListView direkt aus der Datenbank anzeigen. Mit einem Klick soll man dann die jeweilige Nachricht in einem Detailview lesen können.
Das Know-How über Socketverbindungen ist bereits vorhanden. Über SQLite Datenbanken habe ich bereits viel Recherchiert. jedoch ist meine aktuelle Lösung nicht optimal. Ich schreibe immer über dasselbe DB-Objekt welches am Beginn der Applikation erstellt- und am Ende der App zerstört wird. Ich hatte in Testversuchen auch schon das Problem dass ich nicht zwei Cursor gleichzeitig öffnen konnte... Da ich in verschiedenen Threads in die DB schreibe, muss ich das irgendwie Managen können. Da nun die ListView mit einem SimpleCursorAdapter arbeitet um die Daten aus der DB zu holen muss ich ja mein Cursor-Objekt so lange die Activity angezeigt wird, geöffnet halten. Was ist wenn in dieser Zeit ein anderer Thread etwas in die DB schreiben will?
Nun weiss ich nicht so ganz wie ich das ganze bezüglich SQLite Datenbank angehen soll. Ich erwarte keine fix fertige Lösung. jedoch erhoffe ich mir hiermit den einen oder anderen sinnvollen Tipp von Euch...
Gruss Michi
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.