No Android, o gerenciamento de sessões é feito usando algumas técnicas de armazenamento de dados. Esses dados podem ser armazenados em algumas variáveis globais, banco de dados ou preferências do aplicativo.
Mas há um problema com as variáveis globais. As variáveis globais só podem reter os dados até que o aplicativo seja aberto. Uma vez que o aplicativo é fechado, as variáveis globais são destruídas e seus valores são perdidos.
Os dados armazenados no banco de dados e as preferências do aplicativo não se perdem quando o aplicativo é fechado.
Portanto, eles são usados para gerenciamento de sessão. Mas o armazenamento de dados e acesso no banco de dados é mais lento em comparação com as preferências.
Por esse motivo, as preferências são usadas para gerenciamento de sessão.
No contexto do Android, essas preferências são conhecidas como SharedPreferences. Isso permite armazenamento, acesso e atualização de dados mais rápidos.
SharedPreferences normalmente são usados para armazenar as configurações do aplicativo.
Encontre as etapas abaixo para usar SharedPreferences no aplicativo para armazenar e acessar dados para manter a sessão.
1. Inicialize o Editor de SharedPreferences para armazenar dados em SharedPreferences do aplicativo.
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); Editor SharedPreferences.Editor = prefs.edit();
2. Coloque o valor no objeto do editor para salvar em SharedPreferences. Esses valores podem ser do tipo – String, boolean, int, float, etc. Após adicionar os valores, execute o método commit() do Editor para salvar os valores.
editor.putString("key-username", "John Doe"); editor.commit();
3. Para recuperar os dados de SharedPreferences, não há necessidade do objeto Editor. Basta obter a String necessária ou qualquer outro valor usando o método correspondente.
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name ", MODE_PRIVATE); String username = prefs.getString("key-username", "default-value");
O segundo parâmetro do método getString() é o valor padrão que é retornado, caso não haja valor salvo nas preferências correspondentes a essa chave.
4. Para limpar uma chave SharedPreference específica, use o método remove().
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); Editor SharedPreferences.Editor = prefs.edit(); editor.remove("key-username"); editor.commit();
5. Para limpar todas as SharedPreferences salvas, use o método clear().
SharedPreferences prefs = getApplicationContext().getSharedPreferences("preferences-key-name", MODE_PRIVATE); Editor SharedPreferences.Editor = prefs.edit(); editor.clear(); editor.commit();
Encontre abaixo o exemplo de uso deste SharedPreferences para gerenciamento de sessões:-
Quando um usuário faz login no aplicativo, salve o nome de usuário ou qualquer outro valor correspondente do usuário em SharedPreferences. Use esse valor salvo para fazer login do usuário novamente quando o aplicativo for reaberto ou esse valor puder ser acessado em qualquer atividade em todo o aplicativo para obter o nome de usuário. Quando o usuário clicar em Logout, limpe os campos relacionados ao usuário para fazer logout do usuário.