Curso App para Pizzería con delivery
Para programar un SessionManager en Android usamos la clase SharedPreferences con métodos para crear una Sesión, destruirla y/o mostrar información
En esta clase vamos a ver ¿Cómo implementar un SessionManager (Administrador de Sessiones) en una aplicación Android?
Para programar un SessionManager en Android usamos la clase SharedPreferences con métodos para crear una Sesión, destruirla y/o mostrar información
Ademas declaramos algunas variables de configuración para las preferencias donde destacamos
public class SessionManager {
private Context _context;
private SharedPreferences _preference;
private SharedPreferences.Editor _editor;
private static final String KEY_IS_LOGIN = "is_login"; // boolean
private static final String KEY_USER_ID = "user_id"; // int
private static final String KEY_ACCESS_TOKEN = "access_token"; //string
}
Asignamos la configuración para trabajar con sharedpreferences en Android.
public SessionManager(Context context) {
this._context = context;
this._preference = _context.getSharedPreferences("CREDENCIALES",Context.MODE_PRIVATE);
this._editor = _preference.edit();
}
Método que crea una sesión de usuario almacenando sus datos, finalmente llamamos al método que evalua a que actividad redirigir al usuario.
public void createSession(int user_id,String access_token){
_editor.putBoolean(KEY_IS_LOGIN,true);
_editor.putInt(KEY_USER_ID,user_id);
_editor.putString(KEY_ACCESS_TOKEN, access_token);
_editor.commit();
checkLogin();
}
Este método simplemente limpia y destruye los valores de las keys, luego llama al método checkLogin() para redirigir al usuario a la actividad principal MainActivity
public void destroySession(){
_editor.clear();
_editor.commit();
checkLogin();
}
Método que retorna el valor de la llave islogin caso contrario le asigna el valor false.
public boolean isLogin(){
return _preference.getBoolean(KEY_IS_LOGIN,false);
}
Aqui simplemente evalua el método isLogin() si es verdad crea un intent hacia StoreActivity caso contrario lanza la actividad MainActividad, en cualquiera de los dos casos destruye las actividades anteriores.
public void checkLogin(){
if(!this.isLogin()){
Intent i = new Intent(_context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
_context.startActivity(i);
}else{
Intent i = new Intent(_context, StoreActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
_context.startActivity(i);
}
}
230 visitas
Descarga el código fuente del proyecto adquiriendo el curso completo
Descargar ahora© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023