Frage

Ich habe eine SQLite-Datenbank, die auf Anwendungsstufe deklariert und gespeichert ist. Ich bewältige Konfigurationsänderungen wie Gerätedrehung, sodass ich das Schließen der Datenbank, so dass ich es in den Ondestroy der MainAktivität einsetzte, sondern in einem IF (dies.isfiniert ()).

Das Problem, das ich habe, ist, dass ich, wenn ich nach dem Schließen der App, erneut versuche, es erneut zu starten, stürzt es ab, dass es mir versucht hat, eine bereits geschlossene Datenbank zu eröffnen. Das nächste Mal, wenn es richtig startet. Ich denke, das ist, dass Android den Antrag nie wirklich geschlossen hat, weil es keinen Bedarf gab, und es ist immer noch im Hintergrund.

Ich konnte keinen Weg finden, um Onfinish / Ondestroy zu erkennen ... auf Anwendungsstufe, um die Datenbank dort zu schließen. Die einzige Problemumgehung, die ich tun kann, ist, die Datenbank nicht zu schließen. Dies kann mir jedoch Probleme geben, vielleicht, wenn Sie versuchen, es wieder zu öffnen, falls Android meine Anwendung wirklich geschlossen hat, nein?

Gibt es einen Weg, um die Anwendung zu zwingen? (Ich denke, es gibt nicht). Gibt es eine Möglichkeit, das Schließen der Anwendung zu erkennen, um die Datenbank dort zu schließen? Hat ich Probleme, versuchen, eine nicht geschlossene Datenbank zu öffnen, wenn der Antrag von Android geschlossen wurde? Oder Android schließt die Datenbank, die mit einer Anwendung verbunden ist, die geschlossen wird?

War es hilfreich?

Lösung

Die einzige Problemumgehung, die ich tun kann, ist, die Datenbank nicht zu schließen

richtig, und das ist die richtige Antwort.

Dies kann mir jedoch Probleme geben, vielleicht, wenn Sie versuchen, es erneut zu öffnen, falls Android meine Anwendung wirklich geschlossen hat, nein?

nein.

Gibt es eine Möglichkeit, das Schließen der Anwendung zu erkennen, um die Datenbank dort zu schließen?

nein.

Ich habe Probleme, versuchen, eine nicht geschlossene Datenbank zu öffnen, wenn der Antrag von Android geschlossen wurde?

nein.

oder Android schließt die Datenbank, die mit einer Anwendung verbunden ist, die geschlossen wird?

nein.

Das Schließen einer Datenbank macht nicht wirklich alles.SQLite ist Transaktionen;Alle Ihre Datenbank-Schreibvorgänge werden auf der Festplatte geschrieben, wenn Sie diese Transaktionen ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top