Tutorials  /  Security

Speichern von Benutzereinstellungen in Android: Einblicke in Shared Preferences

Ccentron Redaktion · September 2024 ·4 Min. Lesezeit ·Security, Tutorial

Erfahren Sie in unserem neuesten Blogbeitrag, wie Sie Benutzereinstellungen in Android-Anwendungen effizient speichern und wiederherstellen können, indem Sie Shared Preferences verwenden. Von der Initialisierung bis zur Abrufung gespeicherter Daten – wir führen Sie durch den Prozess und zeigen Ihnen, wie einfach es ist, Daten in Form von Schlüssel-Wert-Paaren zu verwalten.

Übersicht über Android Shared Preferences

Shared Preferences ermöglichen es Aktivitäten und Anwendungen, Einstellungen in Form von Schlüssel-Wert-Paaren zu speichern, ähnlich wie bei einer Map, die auch nach dem Schließen der Anwendung bestehen bleiben. Android speichert die Shared Preferences als XML-Datei im Verzeichnis shared_prefs unter DATA/data/{application package}. Der DATA-Ordner kann durch Aufruf von Environment.getDataDirectory() ermittelt werden. Shared Preferences sind anwendungspezifisch, das heißt, die Daten gehen bei folgenden Aktionen verloren:

  • Beim Deinstallieren der Anwendung
  • Beim Löschen von Anwendungsdaten (über die Einstellungen)

Wie der Name schon sagt, besteht der Hauptzweck darin, benutzerspezifische Konfigurationsdetails zu speichern, wie z.B. Benutzereinstellungen, um den Benutzer in der Anwendung angemeldet zu halten. Um auf die Einstellungen zuzugreifen, stehen uns drei APIs zur Auswahl:

  • getPreferences(): Wird in Ihrer Aktivität verwendet, um aktivitätsspezifische Einstellungen abzurufen
  • getSharedPreferences(): Wird in Ihrer Aktivität (oder anderen Anwendungs-Kontexten) verwendet, um anwendungsweite Einstellungen abzurufen
  • getDefaultSharedPreferences(): Wird auf dem PreferenceManager verwendet, um die Shared Preferences abzurufen, die mit dem gesamten Android-Einstellungs-Framework zusammenarbeiten

In diesem Tutorial werden wir getSharedPreferences() verwenden. Die Methode ist wie folgt definiert: getSharedPreferences(String PREFS_NAME, int mode). PREFS_NAME ist der Name der Datei. Der Modus ist der Betriebsmodus. Die folgenden Betriebsmodi sind anwendbar:

  • MODE_PRIVATE: Der Standardmodus, in dem die erstellte Datei nur von der aufrufenden Anwendung zugänglich ist
  • MODE_WORLD_READABLE: Das Erstellen von weltweit lesbaren Dateien ist sehr gefährlich und kann Sicherheitslücken in Anwendungen verursachen
  • MODE_WORLD_WRITEABLE: Das Erstellen von weltweit schreibbaren Dateien ist sehr gefährlich und kann Sicherheitslücken in Anwendungen verursachen
  • MODE_MULTI_PROCESS: Diese Methode überprüft Änderungen an den Einstellungen, auch wenn die Shared Preference-Instanz bereits geladen wurde
  • MODE_APPEND: Dies fügt neue Einstellungen zu den vorhandenen hinzu
  • MODE_ENABLE_WRITE_AHEAD_LOGGING: Datenbank-Öffnungsflag. Wenn gesetzt, wird das vorausschauende Logging standardmäßig aktiviert
SEC

Passende Infrastruktur bei centron

Absicherung endet nicht beim Server: Cloud Firewalls filtern den Datenverkehr vor der VM – zentral verwaltet, ohne Aufpreis je Regel. Cloud Firewalls ansehen →

Initialisierung

Wir benötigen einen Editor, um Änderungen in den Shared Preferences zu bearbeiten und zu speichern. Der folgende Code kann verwendet werden, um die Shared Preferences zu erhalten:

Code
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - für den privaten Modus
SharedPreferences.Editor editor = pref.edit();

Speichern von Daten

editor.commit() wird verwendet, um Änderungen in den Shared Preferences zu speichern. Ein Beispiel für das Speichern von Daten:

Code
editor.putBoolean("key_name", true); // Speichern von Boolean - true/false
editor.putString("key_name", "String-Wert"); // Speichern von String
editor.putInt("key_name", 123); // Speichern von Integer
editor.putFloat("key_name", 3.14f); // Speichern von Float
editor.putLong("key_name", 123456789L); // Speichern von Long

editor.commit(); // Änderungen bestätigen

Abrufen von Daten

Daten können aus den gespeicherten Einstellungen mit getString() wie folgt abgerufen werden:

Code
pref.getString("key_name", null); // String abrufen
pref.getInt("key_name", -1); // Integer abrufen
pref.getFloat("key_name", -1.0f); // Float abrufen
pref.getLong("key_name", -1L); // Long abrufen
pref.getBoolean("key_name", false); // Boolean abrufen

Löschen von Daten

remove("key_name") wird verwendet, um einen bestimmten Wert zu löschen. clear() wird verwendet, um alle Daten zu entfernen.

Code
editor.remove("name"); // wird den Schlüssel "name" löschen
editor.remove("email"); // wird den Schlüssel "email" löschen

editor.commit(); // Änderungen bestätigen
editor.clear();
editor.commit(); // Änderungen bestätigen

Projektstruktur

Die Projektstruktur umfasst die Aktivität (MainActivity.java) und das Layout (activity_main.xml). Die Datei MainActivity.java wird zum Speichern und Abrufen von Daten verwendet, während das Layout activity_main.xml zwei EditText-Ansichten enthält, um Namen und E-Mails zu speichern und anzuzeigen. Mit diesem Wissen können Sie Benutzereinstellungen und andere Daten in Ihrer Android-Anwendung speichern und wiederherstellen. Viel Erfolg beim Programmieren!

Das war's für dieses Tutorial. Danke fürs Lesen!

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Security
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren