2017-03-01 2 views
-1

Ich schreibe gerade eine Anwendung, die Elemente innerhalb einer ListView zeigt, die dann Benutzer hinzufügen oder aus löschen können. Ich mache diese Daten persistent durch Schreiben in eine lokale JSON Datei (Ich speichere die Daten als JSONArray und dann Aufruf der toString() Methode vor Serializing es und Schreiben, Lesen ist im Grunde das gleiche Verfahren umgekehrt).Android Best Practices für lokale Dateien

Da ich ziemlich neu in der Entwicklung für Android bin, bin ich nicht sehr klar in Bezug auf die Best Practices und speziell interessiert mich, was die beste Methode für den Zugriff auf Daten in lokalen Dateien und Ressourcen-Dateien ist. Momentan lese und schreibe ich von diesen mit einer und frage mich, ob das für eine lokale Datei sinnvoll ist oder nicht für lokale Dateien benötigt/empfohlen wird. Ist es OK, auf dem Hauptthread für den Zugriff auf lokale Dateien zu laufen oder gibt es eine andere Klasse neben AsyncTaskLoader kann ich verwenden?

Mein Hauptproblem ist, dass nach der Implementierung der AsyncTaskLoader ich einige Leistungsprobleme sehe und ziemlich neu für die Entwicklung als Ganzes bin, vermute ich, dass ich diese ziemlich komplexe Klasse nicht in einer effizienten Weise implementiere. Wenn ich alles zusammen vermeiden oder eine weniger komplexe Klasse einsetzen kann, um ein ähnliches Ergebnis zu erreichen, denke ich, dass ich eingestellt werde. Vielen Dank im Voraus für Feedback und wenn einige Code-Schnipsel helfen würden, die Frage zu klären, lass es mich wissen.

+0

Sie möchten JSON-Daten einfach speichern; –

+0

oder Sie wollen JSON-Daten von der URL –

+0

Die erste @android_jain, ich bin auf der Suche nach Daten aus einer lokalen Quelle (nicht über das Internet) und ich entschied mich für die Verwendung von JSON, da es eine sehr universelle und einfach zu bedienende Methode ist . –

Antwort

-1

Wenn Ihre Datendatei zu groß zum Lesen und Schreiben ist, dann müssen Sie einige Thread oder AsyncTask verwenden. AsyncTask hat hauptsächlich drei Methoden für Schlagleistung mit Android UI.

zum Speichern von Daten können Sie Ihre json Zeichenfolge in SharedPreferences speichern.

unten Links sehen für

AsyncTask

Und

SharedPreferences

+0

'AsyncTask hat hauptsächlich drei Methoden für die Leistung von Tellern mit Android UI'. –

+0

bessere Leistung voll oder nachrüsten oder irgendein anderes Werkzeug ist da –

+0

Die Daten, die ich habe, ist im Moment nicht sehr groß und ich bezweifle, dass sie viel größer als ein paar MB werden, auch wenn sie fertig sind. Ändert sich die Methodik zum Speichern/Abrufen von Daten je nach Dateigröße erheblich? –

0

Nach der Suche ein bisschen herum und versuchen, ein paar andere Dinge fand ich, dass eine SQLLight Datenbank und Cursor Loader Umsetzung war viel schneller als Serialisierung und De-serialisierung von Strings zu JSON und umgekehrt. Auch wenn alles eingerichtet war, war es viel einfacher zu implementieren.

Dieses Projekt ist ein ziemlich gutes Beispiel für die Implementierung dieses https://github.com/udacity/ud845-Pets.