Ich bin ein Neuling auf Android und arbeite an einer einfachen Anwendung, um grundlegende Erfahrungen zu sammeln. Meine App ist ziemlich einfach und besteht unter anderem aus einem Rundfunkempfänger und einigen Aktivitäten. Beide Komponenten verwenden eine einzige Datenbank. Theoretisch kann es also vorkommen, dass beide versuchen, gleichzeitig auf die Datenbank zuzugreifen.
Derzeit instanziiere ich einfach jedes Mal das DB-Objekt (eine SQLite-DB-Hilfsklasse), wenn ich es benötige, und führe die erforderlichen Operationen aus: Abfragen, Einfügen usw.
Nach dem, was ich hier und in einigen anderen Dokumenten gelesen habe, besteht das Problem, dass bei gleichzeitigem Zugriff auf die Datenbank eine Ausnahme "Datenbank gesperrt" angezeigt wird. Ein besserer Ansatz wäre also, eine einzige Instanz dieses Datenbankobjekts zu haben Komponenten verwenden immer dieselbe Datenbankverbindung.
Ist die obige Argumentation richtig? Wäre ein Singleton dann eine ausreichend gute Lösung dafür? Ich weiß, dass einige Puristen vielleicht dagegen argumentieren, aber bitte beachten Sie, dass dies eine ziemlich einfache Anwendung ist, damit ich es mir leisten kann, Dinge zu tun, die ich in anderen Fällen nicht tun würde.
Was wäre sonst eine bessere Option? Ich habe über die Verwendung von Inhaltsanbietern gelesen, aber es wäre zu viel dafür, außerdem bin ich nicht daran interessiert, die Daten mit anderen Aktivitäten zu teilen. Ich habe diesen Beitrag tatsächlich gelesen und fand ihn ziemlich hilfreich.