Não executar onCreate() ao rotacionar tela no android

5 respostas
G

Olá pessoal.

Estou com uma dúvida no meu projeto de TCC.

Tenho uma activity principal que é um mapa (API V2). Quando eu rotacionar a tela gostaria que a activity não executasse o método onCreate(), pois nele tenho algumas validações com WebService que não precisariam serem executadas novamente.

Eu já tentei a opção android:configChanges=“orientation” no arquivo Manifest.xml e não deu certo.

Alguém saberia me informar uma solução para isso?

Obrigado desde já!

5 Respostas

Marky.Vasconcelos

Já tentei evitar isso também, mas descobri que a melhor solução é deixar o onCreate seja invocado e lidar com dados como esses checks que você faz com WebService através do savedInstanceBundle ou por um Fragmento retido (setRetainInstance(true)).

ByddU

Fala Marky beleza??
Eu ja li bastante sobre isso e até o momento nao consigo imaginar alguem utilizando esse sistema de salvar o estado da tela ao rotacionar quando você uma tela com muitas informações a serem salvas.

Sei que travar a tela é uma solução de curto prazo e que pode trazer problemas, pois tem aparelhos que possuem a largura da tela maior que a altura, fazendo com que o android deixe a tela na orientação “errada”.

Essa é uma das duas coisas que eu nao sei como tratar no android até agora a outra é um design pattern na arquitetura que se encaixe bem.

Marky.Vasconcelos

Quais informações precisam ser salvas? Se forem campos preenchidos, o proprio saveInstanceState nas ViewsGroups irão salvar os valores dos EditText (desde que tenham id).

Se for um fragmento, ele também entra no lifecycle da Activity apra salvar seus dados, você só precisa ter o cuidado de recupera-lo no onCreate ou criar um novo se não existir.

G

Olá galera, consegui!

O problema estava que a partir da API 13 do Android é necessário para que o sistema ignore o método onCreate() definir além de “orientation”, também “screenSize”.

Segue o código no MANIFEST.xml

android:configChanges=“orientation|screenSize”

Abraços!

Marky.Vasconcelos

Se sua Activity não lidar com screenSize|orientation é possivel que ao virar, você veja uma tela rotacionada invés de recalculada.

Criado 14 de setembro de 2013
Ultima resposta 18 de set. de 2013
Respostas 5
Participantes 3