Ich verwende SharedPreferences, um Objektfelder persistent zu machen. Nehmen Sie dieses Beispiel:Sicherstellen, dass die SharedPreference korrekt zurückgeschrieben wird
class Item {
private String note;
public void setNote(String newNote) {
this.note = newNote;
update();
}
private void update() {
String json = ....; // create JSON image of the object
Editor editor = App.getAppPrefs().edit(); // Load SharedPreferences editor
editor.putString("exampleItem", json);
editor.apply();
}
SetNote() (und somit aktualisieren()) aufgerufen wird jedes Mal eine "Note" -EditText geändert wird.
Jetzt habe ich mehrere Fragen: Wie kann ich überprüfen, dass die neueste Version von "Notiz" gespeichert ist? Besteht die Möglichkeit, dass der letzte Aufruf von einem früheren Aufruf an den Editor überschrieben wird? Wie kann ich die Arbeitsbelastung minimieren? Es muss einen klügeren, leichteren Weg geben als apply() 100x für einen 100 Zeichen langen Text.
Wie wäre es mit einer Flagge, und wenn der Benutzer nicht mehr als ein paar Sekunden getippt hat, dann speichern? Das Speichern sollte fast sofort erfolgen, aber wenn Sie nicht jedes Zeichen speichern müssen, das ein Benutzer schreibt, dann tun Sie es regelmäßig. – Mimminito
Dies ist eine ausgezeichnete Idee. Vielen Dank! – damaxxed