Frage

entwickelte ich ein Spiel auf Android. Ich bin derzeit in einer Datenbank der meisten der Spielstatistiken zu speichern. Jedoch hat die App nicht mehr als eine einzige Zeile in der DB nutzen. Ich interessiere mich jetzt in ein paar neue Statistiken Einführung aber dies wird meine DB verursachen neu installieren und damit jeden Fortschritt ausräumen. Um dies in Zukunft zu vermeiden, ich überlege, anstatt die Spielstatistiken mit SharedPreferences speichern. Meine Frage ist, wie viele verschiedenen Dinge können auf diese Weise gespeichert werden, bevor sie zu einem Problem werden. Insgesamt würde ich um die 40 Werte werden zu speichern, alle ganzen Zahlen.

War es hilfreich?

Lösung

SharedPreferences werden in XML-Dateien geschrieben, so dass die maximale Größe einer Datei auf Android ist, wie groß ein SharedPreferences XML-Datei sein kann. Ich kann mit Sicherheit sagen, dass 40 Integer-Wert wird kein Problem sein.

Die maximale Größe eines Wertes in einer SharedPreferences Datei wird auf die maximale Größe des Wertes begrenzt Sie speichern versuchen. (Das heißt, Sie nicht einen String-Wert setzen können, die länger als Strings in Java sein kann.)

Das einzige, was würde ich vorschlagen, ist dafür, dass die Batch die Änderungen so weit wie möglich (Bedeutung haben .commit() sich nicht ändern) und auch nicht schaffen einen neuen Editor für jede Änderung. (Dies sind nur gute Praktiken.)

SharedPreferences settings = getSharedPreferences(PREFS_FILE_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("firstValue", mFirst);
editor.putInt("secondValue", mSecond);
editor.putInt("thirdValue", mThird);

// Commit the edits! (As infrequently as possible)
editor.commit();

Andere Tipps

ich nicht über alle Grenzen kennen, aber in Bezug auf Ihr Problem mit everyones geführt wird abgewischt Fortschritte. Sie können die ONUPGRADE Methode in der SQLite-Klasse außer Kraft setzen und dann migrieren jedermanns Daten über auf die neuere Datenbank.

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