Os Métodos onStart() e onRestart()

Esses métodos, apesar de bem parecidos, têm funcionalidades diferentes. Ambos são chamados quando uma Activity ganha a frente, ou seja, quando uma Activity passa a ser visível. A Activity pode se tornar visível em dois casos. No primeiro caso, ela acaba de ser criada, passou pelo método onCreate e agora está à frente, na tela. Nesse caso, como é a primeira vez que ela foi criada, o método onStart é chamado, para indicar que ela está agora visível ao usuário. Dentro desse método, deve-se fazer a inicialização de componentes visuais que não tenham sido inicializados no onCreate, caso ainda exista algum.

O segundo caso em que a Activity ganha a frente é quando ela estava visível, foi encoberta por uma outra Activity e agora está recuperando a frente. Nesse caso, o método onRestart é chamado antes do método onStart. Como não há indicações via Bundle, como acontece no método onCreate, esse é o meio que o Android tem de dizer ao programador se a Activity está se tornando visível pela primeira vez ou se está sendo reiniciada. É importante notar que mesmo que a Activity esteja sendo recriada, o método onStart será chamado. A diferença é apenas que o método onRestart será chamado antes.

Resumindo, se uma Activity não existia e está sendo criada a primeira vez, ou se ela foi destruída e precisa ser recriada, a sequência de métodos chamados é ilustrada na Figura 3a, sendo chamados os métodos onCreate e onStart, nesta sequência. Se a Activity estava no estado Parado, a sequência será a chamada do método onRestart, depois o método onStart, como mostrado na Figura 3b.

Activity sendo criada pela primeira vez
Activity sendo reiniciada, voltando do estado Parado

Versão 5.3 - Todos os Direitos reservados