Frage

kann ich eine neue Voreinstellungsdatei durch den Aufruf Context.getSharedPreferences (String name, int mode) , einige Werte in den zurück Präferenzen Editor setzen und zu begehen. Allerdings habe ich nicht über eine Schnittstelle in der API finden Sie in der erstellten Datei zu entfernen, wenn ich diese nicht mehr benötigen. Ich habe versucht, Context.deleteFile (String Name) , von oben in dem gleichen name Argumente übergeben, aber das kehrt false, was auf die Datei wurde nicht gelöscht. Ich verwende MODE_PRIVATE, wenn das einen Unterschied macht.

Durchsuchen der Quelle Kontext der Implementierung des Editors keine Hinweise entweder nicht verraten, soweit ich das beurteilen kann.

Irgendwelche Ideen? Hintergrund ist, dass ich meine Benutzer bin so dass Kopien ihrer „aktuellen“ Einstellungen zu speichern, so dass sie zuvor gespeicherten Einstellungen wiederherstellen. Wenn sie mehr nicht diese Einstellungen, ich will die gespeicherte Einstellungsdatei entfernen, damit es Platz nicht in Anspruch nehmen. Im Moment ist das Beste, was ich tun kann, ist ein edit().clear().commit auf die Datei, die ich glaube, dass die meisten Inhalte entfernen. Nicht so gut wie löschen, though.

War es hilfreich?

Lösung

  

Ich habe versucht, Context.deleteFile (String name), von oben in dem gleichen Namen Argument übergeben, aber das gibt false zurück, wurde die Datei angibt, nicht gelöscht.

Das ist, weil die Datei nicht in diesem Verzeichnis.

  

Der Hintergrund ist, dass ich damit meine Benutzer Kopien ihrer „aktuellen“ Einstellungen zu speichern, so dass sie zuvor gespeicherten Einstellungen wiederherstellen.

Wie machen Sie die Kopie?

Vom Standpunkt der unterstützten APIs, sind Sie am besten durch den realen SharedPreferences macht die aktuellen aktiven Einstellungen sein, und tun Sie Ihre Backups und Wiederherstellungen auf Ihr eigenes Dateiformat in einem eigenen Verzeichnis.

Wenn Sie abgeneigt sind in diese Richtung zu gehen, wird die Datei eine XML-Datei im Verzeichnis ../shared_prefs relativ zu getFilesDir(), so dass Sie eine entsprechende Datei-Objekt erstellen können und es auf diese Weise löschen. Doch bedenken Sie, dass Android könnte möglicherweise diese Position später ändern, oder sogar das Speichermodell ändern, und damit Sie in Kompatibilitätsprobleme in der Zukunft führen können.

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