Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como tratar o Login

Professor, estou em dúvida sobre como seria a melhor maneira de programar a transição de telas do meu app. 1 - Armazeno a informação de usuário logado no SharedPreferences? 2 - Após usuário logar, devo fazer algum tratamento para o botão voltar não chamar minha tela de login novamente. Como seria isso?! 3 - Qual activity seria a MAIN? LoginActivity ou MenuPrincipalAcitivity? Caso seja LoginActivity, toda vez que o usuário entrar no app e a informação de usuário logado estiver no SharedPrefs, eu devo redirecionar para a minha MenuPrincipalAcitivity. Caso contrário, toda vez que o usuário entrar no app e a informação de usuário logado não estiver no SP, devo redirecionar para LoginActivity. Qual seria a melhor abordagem?

3 respostas
solução!

Oi Felipe, tudo bem? Ótima pergunta!

Sobre a parte de transitar as telas basicamente você faria com que no momento que a sua activity de login conseguisse de fato realizar o login, você entraria na próxima activity que seria a home/main e mataria a tela de login com o finish(). Em outras palavras, se você não quer voltar para uma tela anterior, sempre mate ela com o finish().

Sobre a informação do usuário, sim, você usaria o Shared Preferences pra isso. Lembrando que todas as vezes que você entrasse na sua App, você primeiro iria verificar se existe a informação no Shared Preferences, caso existir você mandaria para a HOME com as informações contidas no Shared Preferences. Caso contrário, redirecionaria para a tela de login novamente. Veja que a tela de login não deve ser a primeira a ser exibida considerando que vai ter essa verificação todas as vezes, portanto, recomendo considerar o uso de uma tela chamada de splash screen, ou na tradução, tela de apresentação. Eu fiz um post que mostra como pode ser feito.

Acredito que essas orientações já são o suficiente para realizar o que deseja, porém, se ainda tiver alguma dúvida fique à vontade em perguntar :)

Espero ter ajudado.

Abraços.

Fiz o seguinte: Marquei a LoginActivity como noHistory no manifests. Dessa maneira ele automaticamente fica fora da pilha (Android Stack). Assim, quando clico em voltar o app nao chama a tela de login. Estou utilizando o login como main/launcher e verifico se o SharedPrefs esta preenchido. Caso positivo, direciono para a tela de menu, caso contrario mantenho o app no login.

Obrigado pela ajuda de sempre. Caso eu tenha algo de errado com o que fiz acima, favor me comunicar.

A solução é bem válida! Parabéns :)

Precisando de alguma coisa é só avisar.

Abraços.