Präferenzen unter Android [] (Präferenzen unter Android), Lektion, Seite 723785
https://www.purl.org/stefan_ram/pub/praeferenzen_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Android-Entwicklung

Gemeinsame Präferenzen unter Android 

Werte ausgewählter elementarer Typen (allerdings keine double-Werte) sowie Zeichenfolgen und deren Mengen können in einer gemeinsamen Präferenz  gespeichert werden.

Gemeinsame Präferenzen ähneln Bündeln insofern als sie Texten Werte zuordnen, aber es gibt auch einige Unterschiede:

Die Schnittstelle »android.content.SharedPreferences«, die von einer gemeinsamen Präferenz implementiert wird, enthält Methoden zum Auslesen benannter elementarer Werte einiger elementarer Typen (allerdings keiner double-Werte), Zeichenfolgen sowie deren Mengen.

Etwaige von den folgenden get-Methoden zurückgegebene Objekte sollten als unveränderlich  angesehen werden.

Auswahl von get-Methoden der Schnittstelle »android.content.SharedPreferences«
int                              getInt( java.lang.String key,       int defValue )
java.lang.String getString( java.lang.String key, java.lang.String defValue ) boolean getBoolean( java.lang.String key, boolean defValue )
float getFloat( java.lang.String key, float defValue )
long getLong( java.lang.String key, long defValue )
java.util.Set< java.lang.String >getStringSet( java.lang.String key, java.util.Set< java.lang.String >defValues )

Eine gemeinsame (“shared ”) Präferenz (»SharedPreferences«) kann von allen Aktivitäten und von anderen Arten von Komponenten einer Anwendung gemeinsam genutzt (also gelesen und geschrieben) werden kann. Sie kann als XML-Datei im Dateisystem abgespeichert werden. Andere Anwendungen oder Geräte können auf solche Dateien aber normalerweise nicht zugreifen. Beim Deinstallieren einer Anwendung werden auch alle ihre gemeinsamen Präferenzen entfernt.

Gemeinsame Fehlpräferenzen

Eine gemeinsame Fehlpräferenz ist ein gemeinsame Präferenz, die zu einem Kontext geliefert wird, wenn weitere Angaben, beispielsweise zum Namen der gemeinsamen Präferenz, fehlen.

Jedem Kontext (beispielsweise einer App oder einer Aktivität) ist eine gemeinsame Fehlpräferenz  zugeordnet, die verwendet wird, wenn keine andere Präferenz gewünscht wird. Wie die Verwendung genau erfolgt wird weiter unten gezeigt werden.

Der Präferenzenverwalter

Die Klasse »android.preference.PreferenceManager« enthält eine statische Methode »android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context)«, welche zu einem Kontext dessen gemeinsame Fehlpräferenz liefert. Falls diese Methode während des Ablaufs einer Anwendung erneut mit dem gleichen Argumentobjekt aufgerufen wird, liefert sie auch das gleiche Ergebnisobjekt.

Als Argument sollten bevorzugt Aktivitätskontexte (oder Dienstkontexte, im Gegensatz zu Anwendungskontexten) verwendet werden, da es bei der Verwendung von Anwendungskontexten eher zu Blockaden von Ressourcen kommen kann, falls nicht sorgfältig darauf geachtet wird, Ressourcen wieder freizugen.

Der Präferenzeditor

Um eine Präferenz verändern  zu können, muß ein speziellen Präferenzeditor  verwendet werden. Dieser kann mit der edit-Methode von der zu verändernden Präferenz erhalten werden.

Die edit-Methode der Schnittstelle »android.content.SharedPreferences«
android.content.SharedPreferences.Editor edit()

Mit einem Editor können mehrere Veränderungen zunächst gesammelt und dann auf ein Mal auf eine Präferenz angewendet werden, wie weiter unten gezeigt werden wird.

Das Editieren einer Präferenz

Ein Editor implementiert die Schnittstelle »android.content.SharedPreferences.Editor«, die es erlaubt, Werte für Zeichenfolgen festzulegen. Alle damit festgelegten Festlegungen werden zunächst gesammelt und erst durch eine Aufruf von »commit« oder »apply« wirklich gespeichert. Durch einen Aufruf von »clear()« werden am Anfang des Speicherns alle bisher in der Präferenz vorhandenen Einträge gelöscht. Mit einer put-Methoden kann ein Eintrag mit einem Namen und einem Wert eines bestimmten Typs zur Präferenz hinzugefügt werden.

Schnittstelle »android.content.SharedPreferences.Editor« (put-Methoden)
SharedPreferences.Editor                 clear()
android.content.SharedPreferences.Editor putInt(       java.lang.String key, int value )
android.content.SharedPreferences.Editor putString( java.lang.String key, String value ) android.content.SharedPreferences.Editor putStringSet( java.lang.String key, java.util.Set< java.lang.String >values )
android.content.SharedPreferences.Editor putBoolean( java.lang.String key, boolean value )
android.content.SharedPreferences.Editor putFloat( java.lang.String key, float value )
android.content.SharedPreferences.Editor putLong( java.lang.String key, long value )

Das Speichern eines Editors

Schnittstelle »android.content.SharedPreferences.Editor« (weitere Methoden)
void    apply()
boolean commit()

Mit »apply()« werden die Änderungen an der Präferenz vollzogen. Außerdem wird parallel ein Vorgang gestartet, der die neue Präferenz auch dauerhaft im Dateisystem  festhält; Falls dieser parallele Vorgang scheitern sollte, erfährt der Aufrufer aber nichts davon. Der Aufruf von »apply()« kann schon beendet sein, während der gestartete Vorgang noch parallel weiterläuft.

Bei einem Aufruf von »commit()« werden die Änderungen in der Präferenz vollzogen. Außerdem wird die neue Präferenz auch dauerhaft im Dateisystem festgehalten. Der Aufruf von »commit()« ist erst beendet, wenn feststeht, ob das Speichern im Dateisystem erfolgreich war, in welchem Falle »true« zurückgegeben wird.

Falls die Methode »clear()« aufgerufen wird, so werden beim Speichern der Festlegungen mit »commit()« oder »apply()« zunächst alle schon in der Präferenz enthaltenen Festlegungen gelöscht. Die einzigen Werte, die nach dem Speichern in der Präferenz enthalten sind, sind dann also die mit dem gespeicherten Editor vorgenommenen. Auch wenn »clear()« dabei erst nach  den put-Methoden aufgerufen wurde, wird es bei Speichern doch zuerst  vollzogen.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723785 stefan_ram:723785 Präferenzen unter Android Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723785, slrprddef723785, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/praeferenzen_android