En Android, la gestión de la sesión se realiza mediante algunas técnicas de almacenamiento de datos. Estos datos se pueden almacenar en algunas variables globales, base de datos o preferencias de la aplicación.
Pero hay un problema con las variables globales. Las variables globales solo pueden retener los datos hasta que se abre la aplicación. Una vez que se cierra la aplicación, las variables globales se destruyen y sus valores se pierden.
Los datos almacenados en la base de datos y las preferencias de la aplicación no se pierden cuando se cierra la aplicación.
Por lo tanto, estos se utilizan para la gestión de sesiones. Pero el almacenamiento de datos y el acceso a la base de datos es más lento en comparación con las preferencias.
Por este motivo, las preferencias se utilizan para la gestión de sesiones.
En el contexto de Android, estas preferencias se conocen como SharedPreferences. Estos permiten un almacenamiento, acceso y actualización de datos más rápidos.
SharedPreferences se utilizan normalmente para almacenar la configuración de la aplicación.
Encuentre los pasos a continuación para usar SharedPreferences en la aplicación para almacenar y acceder a datos para mantener la sesión.
1. Inicialice el Editor de Preferencias Compartidas para almacenar datos en las Preferencias Compartidas de la aplicación.
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit();
2. Coloque el valor en el objeto del editor para guardar en SharedPreferences. Estos valores pueden ser del tipo String, boolean, int, float, etc. Después de agregar los valores, ejecute el método commit() del Editor para guardar los valores.
editor.putString("nombre-de-usuario-clave", "John Doe"); editor.commit();
3. Para recuperar los datos de SharedPreferences, no es necesario el objeto Editor. Simplemente obtenga la cadena requerida o cualquier otro valor usando el método correspondiente.
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); String nombre de usuario = prefs.getString("nombre-de-usuario-clave", "valor-predeterminado");
El segundo parámetro del método getString() es el valor predeterminado que se devuelve, en caso de que no haya ningún valor guardado en las preferencias correspondientes a esa clave.
4. Para borrar una clave SharedPreference en particular, use el método remove().
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.remove("clave-nombre de usuario"); editor.commit();
5. Para borrar todas las SharedPreferences guardadas, utilice el método clear().
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.claro(); editor.commit();
Encuentre a continuación el ejemplo de uso de este SharedPreferences para la gestión de sesiones:-
Cuando un usuario inicie sesión en la aplicación, guarde el nombre de usuario o cualquier otro valor correspondiente del usuario en SharedPreferences. Utilice este valor guardado para volver a iniciar la sesión del usuario cuando se vuelva a abrir la aplicación o se puede acceder a este valor en cualquier actividad en toda la aplicación para obtener el nombre de usuario. Cuando el usuario haga clic en Cerrar sesión, borre los campos relacionados con el usuario para cerrar la sesión del usuario.