Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Der Preferences Service erlaubt das Anlegen und Modifizieren von Preferences in einem Backend Store. Falls mehrere Prozesse gleichzeitig auf dem Backend Store arbeiten, können nebenläufige Updates zu Differenzen zwischen dem Backend Store und bereits gelesenen Preferences führen. Über die Methoden flush() und sync() am Preferences Service kann diese Problematik teilweise kontrolliert werden:
Die Methode flush(): Über die Methode flush() kann ein Preferences-Knoten explizit gespeichert werden. Dabei werden alle Elternknoten, die noch nicht im Backend gespeichert sind, automatisch angelegt. Alle Properties werden persistiert, und evtl. gelüschte Kindknoten werden aus dem Backend entfernt. Anschließend wird die flush()-Methode an allen Kindknoten aufgerufen.
Beim Stoppen eines Bundles wird an dessen Preferences automatisch die flush()-Methode aufgerufen.
Die Methode sync(): Die Methode sync() ruft zunächst die Methode flush() am Preferences-Objekt auf. Anschließend werden alle Änderungen am Preferences-Objekt aus dem Backend Store, die von anderen Prozessen gemacht wurden, erneut ausgelesen.