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

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á!

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)).

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.

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.

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!

1 curtida

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