Was ist mit Multithreading in Android SQLite?Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Was ist mit Multithreading in Android SQLite?

Post by Anonymous »

In meiner App muss ich einen UI- und Synchronisierungsdienst implementieren.
Er läuft im Hintergrund und aktualisiert Daten. Der Synchronisierungsdienst ist nicht sehr einfach, er verwendet Multithreading.

Also, hier ist meine Geschichte:
Als ich mit der Entwicklung dieser App begann, wusste ich nichts über SQLite, also habe ich einfach keine Thread-Synchronisierung in Java verwendet. Ergebnis: Ich habe viele Ausnahmen wie „SQLiteException: Datenbank ist gesperrt: BEGIN EXCLUSIVE;“ erhalten.

Dann habe ich alle meine Transaktionen mit dem regulären Java-Synchronized () {}-Block synchronisiert. Alles ist viel besser geworden. Aber ich habe Cursors verwendet, um CursorAdapter für meine Listen zu implementieren. Daher bekam ich manchmal die gleiche Meldung „SQLiteException: Datenbank ist gesperrt: BEGIN EXCLUSIVE;“

Ich habe damit begonnen, ein kleines Thread-sicheres SQLite-Dienstprogramm zu erstellen, das all diese Thread-sicheren Dinge erledigt. Außerdem muss ich für meine Benutzeroberfläche etwas wie ArrayAdapter verwenden (alle Daten vom Cursor lesen und nach dem Lesen schließen, auch diesen Block synchronisieren). Es funktioniert also einwandfrei

Aber ich mag diese Art, mit der Benutzeroberfläche umzugehen, nicht, weil die Benutzeroberfläche mit dieser Lösung wirklich langsamer geworden ist – das Lesen einiger Datenmengen vom Cursor ist ziemlich schnell, aber langsamer als die Verwendung von CursorAdapter

Wer hat also die Lösung für diese Frage?
Vielen Dank

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post