Weitere Existenzereignisse unter Android [] (Weitere Existenzereignisse unter Android), Lektion, Seite 723786
https://www.purl.org/stefan_ram/pub/weitere_existenzereignisse_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Android-Entwicklung

Weitere Aktivitätsereignisse unter Android

»onPause()«

Das Betriebssystem ruft »onPause()« auf, bevor eine Aktivität beendet wird. Dort haben wir die Gelegenheit, alle Informationen, welche bei der Reinkarnation der Aktivität wiederverwendet werden sollen, in eine Präferenz  zu schreiben.

In einer früheren Lektion haben wir in einer ähnlichen Situation »onSaveInstanceState« verwendet. »onSaveInstanceState« wird aber nur  aufgerufen, wenn eine Aktivität vorübergehend  abgebaut wird und zu erwarten ist, daß sie gleich wieder aufgebaut wird. »onSaveInstanceState« wird nicht  aufgerufen, wenn der Benutzer die Aktivität mit der Zurück -Taste verläßt.

»onResume()«

Das Betriebssystem ruft »onResume()« auf, nachdem die Aktivität wiederhergestellt wurde – es handelt sich hierbei praktisch um das Gegenstück zu »onPause()«. »onResume()« wird auch beim ersten Start einer Aktivität aufgerufen, nicht nur bei einer Wiederherstellung. Deswegen darf »onResume()« nicht voraussetzen, daß zuvor schon einmal »onPause()« aufgerufen wurde.

Verwendung der Ereignisse für Präferenzpersistenz

In dem folgenden Programmfragment steht »GETVALUE« für einen int-Ausdruck, welcher den zu sichernden bisherigen int-Wert enthält, »SETVALUE« für ein Programmstück, welches den Wert des dahinterstehenden Ausdrucks an die gewünschte Stelle schreibt (»SETVALUE« kann dazu auch der Name einer Methode sein).

Speichern in einer Präferenz

@java.lang.Override protected void onPause()
{ super.onPause();
final android.content.SharedPreferences preferences
= android.preference.PreferenceManager.getDefaultSharedPreferences
( ( android.content.Context )this );

if( preferences != null )
{ final android.content.SharedPreferences.Editor editor
= preferences.edit();

if( editor != null )
{ editor.putInt( "", GETVALUE );
editor.apply(); }}}

Lesen aus einer Präferenz

@java.lang.Override protected void onRestore()
{ super.onRestore();
final android.content.SharedPreferences preferences
= android.preference.PreferenceManager.getDefaultSharedPreferences
( ( android.content.Context )this );

SETVALUE( preferences.getInt( "", 0 )); }

Wenn mehrere Werte in einer Präferenz gespeichert werden sollen, so sollte an Stelle von »""« für jeden einzelnen Wert ein individueller Name verwendet werden.

put-Methoden und get-Methoden, wie beispielsweise »putInt«, stehen mit naheliegenden Namen auch für verschiedene andere Datentypen (für andere elementare Datentypen wie »long« und für »java.lang.String«) zur Verfügung.

Die von uns oben verwendete Methode »apply()« schreibt die Daten asynchron. Die alternative Methode »commit()« würde die Daten synchron speichern und somit den UI-Ablauf blockieren, sie würde aber einen boolean-Rückgabewert liefern, der ein Scheitern mit dem Wert »false« melden könnte.

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 stefanram723786 stefan_ram:723786 Weitere Existenzereignisse unter Android Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723786, slrprddef723786, 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/weitere_existenzereignisse_android