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
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
Bei meiner EF6-Nachbildung dieser exemplarischen Vorgehensweise zum Erstellen und Zugreifen auf eine SQLite-Datenbank mithilfe von System.Data.SQLite habe ich festgestellt, dass bei jedem Zugriff auf...
Ich habe mehrere YouTube-Demos und Tutorials zur Implementierung von Multithread-Operationen in Java verfolgt. Alle Tutorials zeigen jedoch das folgende Verfahren:
class Task implements Runnable {...
Ich sehe immer wieder Leute, die Ladeszenen veröffentlichen, in denen die Fortschrittsleiste funktioniert. Ich habe einen animierten Charakter, während die Szene geladen wird, und alles friert nur...
Ich arbeite mit SQLCipher, um meine Datenbank in meiner Android-App zu verschlüsseln, stehe aber vor einem Problem, bei dem ich die Datenbank nicht mit der richtigen Passphrase öffnen kann. Wenn ich...