Como identificar que saiu da aplicação?

Boa tarde pessoal!

Galera, a ideia é bem simples.
Imagina a seguinte situação:

  1. O usuario entrou na aplicação com login e senha
  2. O usuario resolve ver uma mensagem do whatsapp/telegram/ver youtube, qualquer coisa fora da aplicação
  3. Ao abrir de novo a aplicação, ela pede NOVAMENTE login e senha

Pra início, quero fazer isso quando o botão central for pressionado. Pra não ter dúvidas, “botão central” é esse identificado na imagem (não sei se ele tem um nome correto, se tiver eu não sei, me ensinem, por favor senpais)

Alguém sabe como identifico esse evento?
A ideia é que o app seja fechado da memória, sempre que sair dele, toda vez que voltar pro app, tem que pedir login e senha.

Salvo engano, esse é o botão HOME e, da mesma forma que o back, tem eventos associados. Dê uma pesquisada por algo como “android home press event”.

De toda forma, outra alternativa é você usar os eventos onPause e OnResume, que são ativados quando seu aplicativo vai para segundo plano e quando ele volta de segundo plano (ex: usuário trocou de aplicativo e depois voltou).

Abraço.

2 curtidas

Para fazer isso não é necessário descobrir quando o botão home foi pressionado. Você precisa conhecer o ciclo de vida de uma Activity em uma aplicação android.
Segue um breve resumo :

Os métodos abaixo são invocados automaticamente pelo android quando um determinado evento acorre na sua aplicação.

onCreate(): É a primeira função a ser executada em uma Activity. Geralmente é a responsável por carregar os layouts XML e outras operações de inicialização. É executada apenas uma vez.

onStart(): É chamada imediatamente após a onCreate() – e também quando uma Activity que estava em background volta a ter foco.

onResume(): Assim como a onStart(), é chamada na inicialização da Activity e também quando uma Activity volta a ter foco. Qual a diferença entre as duas? A onStart() só é chamada quando a Activity não estava mais visível e volta a ter o foco, a onResume() é chamada nas “retomadas de foco”.

onPause(): É a primeira função a ser invocada quando a Activity perde o foco (isso ocorre quando uma nova Activity é iniciada).

onStop(): Só é chamada quando a Activity fica completamente encoberta por outra Activity.

onDestroy(): A última função a ser executada. Depois dela, a Activity é considerada “morta” – ou seja, nao pode mais ser relançada. Se o usuário voltar a requisitar essa Activity, um novo objeto será contruído.

onRestart(): Chamada imediatamente antes da onStart(), quando uma Activity volta a ter o foco depois de estar em background.

Você pode implementar na sua Activity principal o método onDestroy() , então toda vez que a Activity principal for destruída (O usuário sair da aplicação) você pode executar um método/comando que efetua o logout do usuário que está logado. Depois quando ele for acessar a aplicação novamente vai está deslogado e terá que fazer login novamente.

Eu recomendo fortemente que você estude o ciclo de vida de uma aplicação android. Este conteúdo é muito importante para um desenvolvedor android.

Referências
https://developer.android.com/reference/android/app/Activity


3 curtidas

Acredito que para o cenário dele, o ideal seria no método onpause mesmo, né?

3 curtidas

Assim, entendi errado. Nesse caso é melhor implementar o código de logout no onPause() mesmo.
Obrigado pela correção.

3 curtidas

Entendi
De fato, quando comecei a estudar Android, não dei a devida atenção ao ciclo de vida de uma Activity. Vou dar uma estudada melhor nisso, com certeza!

Muito obrigado pela resposta pessoal!

1 curtida

Tranquilo man.

1 curtida