Quando a Activity está no estado Resumed dizemos que ela está no primeiro plano (foreground) e pode realizar interação com o usuário. Neste plano foreground o usuário pode interagir com o aplicativo fornecendo ou recebendo dados do mesmo.

A activity transita para o estado Paused quando for, por exemplo, parcialmente encoberta por outra activity inicializada pelo usuário, que pode não ocupar toda a tela ou ser transparente. Se o usuário sair da aplicação ou iniciar outra activity que encubra totalmente a que está sendo executada, então o método onStop é invocado e a activity vai para o segundo plano (background). Mesmo não sendo mais visível pelo usuário em background, a activity continua instanciada na memória de trabalho e com seu estado interno representado, ou seja, da forma como estava quando em execução no estado Resumed.

Quando uma activity está nos estados de Paused ou Stopped, o sistema operacional Android poderá removê-la da memória de trabalho, invocando o seu método finish ou encerrando arbitrariamente o seu processo. Isso ocorre em função da política de escalonamento de processos e threads do sistema operacional conforme apresentamos em ocasiões anteriores. Nestas condições, o método onDestroy é disparado no momento imediatamente anterior à eliminação do referido objeto que representa uma activity qualquer. Após destruída, se a Activity for aberta novamente, ela será recriada e não reinicializada.

Conhecer esse funcionamento é importante para preservar o estado dos objetos envolvidos. Portanto, é dever do programador sobrescrever esses métodos do ciclo de vida para acrescentar ações que devem ser realizadas em determinado estágio dessas possíveis transições, caso ocorram.

Por exemplo, quando a Activity não estiver mais visível, podemos liberar recursos tais como uma conexão de rede, ou ainda, salvar os dados digitados pelo usuário no método onPause e encerrar as threads em execução no método onDestroy.

Copyright © 2016 AIEC.