In Android, la gestione delle sessioni viene eseguita utilizzando alcune tecniche di archiviazione dei dati. Questi dati possono essere memorizzati in alcune variabili globali, database o preferenze dell’applicazione.
Ma c’è un problema con le variabili globali. Le variabili globali possono conservare i dati solo fino all’apertura dell’applicazione. Una volta chiusa l’applicazione, le variabili globali vengono distrutte e i loro valori vengono persi.
I dati archiviati nel database e nelle preferenze dell’applicazione non vanno persi alla chiusura dell’applicazione.
Quindi, questi sono usati per la gestione della sessione. Ma la memorizzazione dei dati e l’accesso al database sono più lenti rispetto alle preferenze.
Per questo motivo, le preferenze vengono utilizzate per la gestione delle sessioni.
Nel contesto Android, queste preferenze sono note come SharedPreferences. Questi consentono una più rapida archiviazione, accesso e aggiornamento dei dati.
Le preferenze condivise vengono normalmente utilizzate per memorizzare le impostazioni dell’applicazione.
Trova i passaggi seguenti per utilizzare SharedPreferences nell’app per archiviare e accedere ai dati per il mantenimento della sessione.
1. Inizializzare l’editor di SharedPreferences per memorizzare i dati nelle SharedPreferences dell’applicazione.
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferenze-nome-chiave", MODE_PRIVATE); Editor di SharedPreferences.Editor = prefs.edit();
2. Inserisci il valore nell’oggetto editor da salvare in SharedPreferences. Questi valori possono essere del tipo – String, boolean, int, float, ecc. Dopo aver aggiunto i valori, eseguire il metodo commit() di Editor per salvare i valori.
editor.putString("key-username", "John Doe"); editor.commit();
3. Per recuperare i dati da SharedPreferences, non è necessario l’oggetto Editor. Ottieni semplicemente la stringa richiesta o qualsiasi altro valore utilizzando il metodo corrispondente.
SharedPreferences preferenze = getApplicationContext().getSharedPreferences("preferenze-nome-chiave", MODE_PRIVATE); String username = prefs.getString("key-username", "default-value");
Il secondo parametro del metodo getString() è il valore predefinito che viene restituito, nel caso non ci sia alcun valore salvato nelle preferenze corrispondenti a quella chiave.
4. Per cancellare una particolare chiave SharedPreference, utilizzare il metodo remove().
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferenze-nome-chiave", MODE_PRIVATE); Editor di SharedPreferences.Editor = prefs.edit(); editor.remove("nome-utente-chiave"); editor.commit();
5. Per cancellare tutte le SharedPreferences salvate, utilizzare il metodo clear().
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferenze-nome-chiave", MODE_PRIVATE); Editor di SharedPreferences.Editor = prefs.edit(); editor.clear(); editor.commit();
Trova sotto l’esempio di utilizzo di questo SharedPreferences per la gestione della sessione:-
Quando un utente accede all’applicazione, salva il nome utente o qualsiasi altro valore corrispondente dell’utente in SharedPreferences. Utilizzare questo valore salvato per accedere nuovamente all’utente quando l’applicazione viene riaperta oppure è possibile accedere a questo valore in qualsiasi attività nell’applicazione per ottenere il nome utente. Quando l’utente fa clic su Logout, deseleziona i campi relativi all’utente per disconnettere l’utente.