it-swarm.com.de

Warum SQLite-Datenbank in Android verwenden?

Warum verwenden wir die SQLite-Datenbank in Android? Ich entwickle eine Android-Anwendung, in der die Daten vom Server abgerufen werden sollen, und führe eine Datenberechnung durch und zeige sie auf der Benutzeroberfläche an.

Ist es gut für mich, die Daten in die SQLite-Datenbank zu holen und die Benutzeroberfläche in regelmäßigen Abständen alle 20 Minuten zu aktualisieren, oder ist es gut, die HTTP-Abrufanforderung an den Server zu senden und die Daten von der Antwort auf die zu aktualisieren Benutzeroberfläche.

Ich wollte wissen, welches besser ist und warum? Warum sollte ich sqlite DB einbeziehen? Die Daten entsprechen etwa 40x40-Tabellendaten, für die eine umfangreiche mathematische Verarbeitung durchgeführt und dann auf der Benutzeroberfläche angezeigt werden muss (ähnlich der Börsenanwendung). Die Daten müssen nach jeweils 12 Stunden gelöscht werden. plz advice Rgds, Raul

27
Raulp

Es ist gut, die Datenbank in Ihrem Fall zu verwenden.

Vorteile:

  • Wenn Ihre Anwendung geschlossen wird, gehen die Daten im Arbeitsspeicher verloren. Danach können Sie den Status aus der Datenbank wiederherstellen, sofern Sie eine haben
  • Insbesondere bei komplexen Berechnungen empfiehlt es sich, das Ergebnis einmalig in der Datenbank zu speichern und bei Bedarf nicht mehrmals neu zu berechnen
  • Die Datenbank löst Ihre Benutzeroberfläche von der Internetverbindung und Sie können die Ergebnisse auch dann anzeigen, wenn keine Internetverbindung besteht
  • Mithilfe der Datenbank können Sie die aktualisierten Daten von einem Hintergrunddienst abrufen, ohne dass dies Auswirkungen auf Ihre Benutzeroberfläche hat
  • Das Organisieren Ihrer Daten in einer Datenbank erleichtert normalerweise die Verwaltung aller Anwendungsdaten erheblich.

Nachteile:

  • Das Hinzufügen einer Datenbank erfordert ein wenig zusätzlichen Aufwand auf Ihrer Seite

Wie Sie meiner Liste entnehmen können, sollten Sie in Ihrem Fall die Datenbank verwenden. Vielleicht bin ich voreingenommen, aber zumindest biete ich Ihnen Dinge an, die Sie berücksichtigen sollten.

25
Boris Strandjev

Es ist wirklich eine Designentscheidung. SQLite bietet eine sehr robuste Möglichkeit zum Organisieren und Speichern Ihrer Daten. Sie haben nur noch die Möglichkeit, in eine Datei zu schreiben oder in SharedPrefs zu speichern. Beide Methoden sind nach der Größe von erheblich schwieriger zu verwalten Ihre Daten werden immer größer, da Sie eine Liste von Objekten manuell führen und deren Namen usw. verwalten müssen. Die 40 x 40-Tabellendaten sind groß genug, um die Verwendung von SQLite zu rechtfertigen, auch wenn Sie die Tabelle alle 12 Stunden löschen und neu erstellen.

Möglicherweise möchten Sie eine ORM-Bibliothek verwenden, um das Abrufen und Speichern von Daten aus der DB zu vereinfachen. ORMLite ist gut und mit Android kompatibel

http://ormlite.com/

4
Sam Clewlow

Wenn Ihre Anwendung stark auf eine Internetverbindung angewiesen ist, müssen Sie keine Informationen in der Datenbank puffern. Wenn Sie die App jedoch verwenden möchten, wenn Sie ein schlechtes oder kein Signal haben, möchten Sie möglicherweise zwischengespeicherte Werte aus der SQLite-Datenbank verwenden. Bei einer langsamen Internetverbindung reagiert Ihre Anwendung möglicherweise nicht, daher ist das Zwischenspeichern möglicherweise eine gute Idee - es muss sich jedoch nicht unbedingt in der SQLite-Datenbank befinden. Sie sollten die SQLite-Datenbank für Daten verwenden, die vom Gerät häufig benötigt werden und für Ihre Serverkomponente nicht relevant sind. Wenn die Daten häufig aktualisiert werden, jedoch nur während die Anwendung ausgeführt wird, möchten Sie möglicherweise im Gerätespeicher zwischenzuspeichern. Ich gehe davon aus, dass Ihre App nicht die ganze Zeit innerhalb der 12 Stunden ausgeführt wird, sondern regelmäßig aufgerufen wird, um etwas zu überprüfen.

3
konqi
> update the UI on regular interval from the sqlite in evry 20 minutes 

Erwarten Sie nicht, dass Ihre App so lange geöffnet bleibt.

Um genau zu Ihrem Fall vorzuschlagen

 Avoid DB 

 Fetch Data at app start or at appropriate time when app is opened 
 and save it in plain Java objects.

 Define Methods within it that perform operation in it.

 Make map or list to save those POJO

 Define Seprate Controller Classes within your project to update map of pojo at any     
 specific change to make fresh data available to UI.
0
Javanator

12 Stunden sind eine lange Zeit, daher empfehle ich Ihnen, die Datenbank zu verwenden, anstatt Ihre Daten im RAM zu wandern. Weil Sie nie wissen, wann Sie es möglicherweise noch einmal lesen müssen.

Andernfalls müssen Sie keine Datenbank einbeziehen, wenn Sie nur Daten herunterladen, verarbeiten und in der Aktivität anzeigen möchten. Wenn Ihre App geschlossen ist (aufgrund von Benutzer- oder Speichermangel), lädt Ihre App in jedem Fall frische Daten von Server ... bin ich richtig?

0
waqaslam