Le SharedPreferences rappresentano un metodo semplice e veloce per memorizzare informazioni in applicazioni Android
Le SharedPreferences rappresentano uno dei metodi più veloci ed efficienti per poter salvare dei dati su Android. Attraverso una coppia chiave-valore è possibile salvare qualsiasi tipo di dato: boolean, float, int, long o String. È possibile avere un unico file con tutti i dati tramite il metodo getPreferences(), oppure utilizzare più file con il metodo getSharedPreferences() specificando il file su cui effettuare le operazioni. Le SharedPreferences risultano veloci ed efficienti, da linea guida sono accessibili solo dalla nostra app ma in realtà è facilmente hackerabile ed è consigliato salvare qui solo informazioni utilizzate spesso e dati non sensibili.
I nomi dei file in cui salviamo le SharedPreferences devono essere univoci, per questo motivo è consigliato assegnarli un nome del tipo “com.esempio.miaapp.nome_del_file“. Ecco un esempio che utilizza un file specifico in cui salvare le SharedPreferences con il metodo getSharedPreferences per apre il file in modalità privata per renderlo “inaccessibile” da altre app.
SharedPreferences sharedPref = context.getSharedPreferences(getString(com.esempio.miaapp.nome_del_file), Context.MODE_PRIVATE);
Per utilizzare un unico file scriveremo con il metodo getPreferences():
Per scrivere delle informazioni nelle SharedPreferences dobbiamo creare un oggetto SharedPreferences.Editor e chiamare il metodo vedit(). A questo punto dovremo inserire le informazioni tramite le put inserendo una chiave identificata e il valore da memorizzarlo. Infine le modifiche effettuate al file dovranno essere committate. Ad esempio:
editor.putString("siteName", "Datrevo");
editor.putInt("idSite", 61842);
editor.commit();
Per recuperare le informazioni dallo SharedPreferences in Android dobbiamo fornire l’id identificativo delle risorse memorizzate tramite i vari metodi get. E’ possibile specificare un valore di default qualora non venisse riscontrato nessun lavoro.
int defaultValue = getResources().getInteger("siteName");
long highScore = sharedPref.getInt("idSite"), 0);
Indice | Lezione Precedente – Lezione Successiva |