W systemie Android zarządzanie sesjami odbywa się przy użyciu niektórych technik przechowywania danych. Dane te mogą być przechowywane w niektórych zmiennych globalnych, bazie danych lub preferencjach aplikacji.
Ale jest problem ze zmiennymi globalnymi. Zmienne globalne mogą przechowywać dane tylko do momentu otwarcia aplikacji. Po zamknięciu aplikacji zmienne globalne ulegają zniszczeniu, a ich wartości zostają utracone.
Dane przechowywane w bazie danych oraz preferencje aplikacji nie giną po zamknięciu aplikacji.
Są one więc używane do zarządzania sesjami. Jednak przechowywanie i dostęp do danych w bazie danych jest wolniejszy w porównaniu z preferencjami.
Z tego powodu preferencje są wykorzystywane do zarządzania sesjami.
W kontekście Androida te preferencje są znane jako SharedPreferences. Pozwalają one na szybsze przechowywanie, dostęp i aktualizację danych.
SharedPreferences są zwykle używane do przechowywania ustawień aplikacji.
Znajdź poniższe kroki, aby użyć SharedPreferences w aplikacji do przechowywania i uzyskiwania dostępu do danych w celu utrzymania sesji.
1. Zainicjuj edytor SharedPreferences, aby przechowywać dane w SharedPreferences aplikacji.
Preferencje SharedPreferences = getApplicationContext().getSharedPreferences("preferencje-nazwa-klucza", MODE_PRIVATE); SharedPreferences.Editor edytor = prefs.edit();
2. Umieść wartość w obiekcie edytora, aby zapisać w SharedPreferences. Mogą to być wartości typu String, boolean, int, float itp. Po dodaniu wartości wykonaj metodę commit() Editor, aby zapisać wartości.
editor.putString("klucz-nazwa użytkownika", "Jan Kowalski"); edytor.commit();
3. Aby pobrać dane z SharedPreferences, nie jest potrzebny obiekt Editor. Po prostu uzyskaj wymagany ciąg lub dowolną inną wartość za pomocą odpowiedniej metody.
Preferencje SharedPreferences = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); String nazwa użytkownika = prefs.getString("klucz-nazwa użytkownika", "wartość-domyślna");
Drugim parametrem metody getString() jest zwracana wartość domyślna na wypadek, gdyby w preferencjach odpowiadających temu kluczowi nie zapisano żadnej wartości.
4. Aby wyczyścić określony klucz SharedPreference, użyj metody remove().
Preferencje SharedPreferences = getApplicationContext().getSharedPreferences("preferencje-nazwa-klucza", MODE_PRIVATE); SharedPreferences.Editor edytor = prefs.edit(); editor.remove("klucz-nazwa użytkownika"); edytor.commit();
5. Aby wyczyścić wszystkie zapisane SharedPreferences, użyj metody clear().
Preferencje SharedPreferences = getApplicationContext().getSharedPreferences("preferencje-nazwa-klucza", MODE_PRIVATE); SharedPreferences.Editor edytor = prefs.edit(); edytor.wyczyść(); edytor.commit();
Znajdź poniżej przykład użycia tego SharedPreferences do zarządzania sesją:-
Kiedy użytkownik loguje się do aplikacji, zapisz nazwę użytkownika lub inną odpowiednią wartość użytkownika w SharedPreferences. Użyj tej zapisanej wartości, aby ponownie zalogować użytkownika, gdy aplikacja zostanie ponownie otwarta lub do tej wartości można uzyskać dostęp w dowolnym działaniu w aplikacji, aby uzyskać nazwę użytkownika. Gdy użytkownik kliknie Wyloguj, wyczyść pola związane z użytkownikiem, aby go wylogować.