Meu app se comunica com o meu site para trazer dados. Coloquei isso, feliz e contente, no onCreate das Activities. E, triste, descobri que, ao virar o celular, ele ia de novo lá chamar o site, ao invés de só virar o que existe ali.
Isso acontece porque, na verdade, quando você vira o celular, ele destrói a Activity e cria novamente. Estava procurando um jeito de detectar se minha Activity foi recarregada porque eu virei o celular ou se realmente é para renovar o conteúdo dela.
Achei este post aqui, no StackOverflow: http://stackoverflow.com/questions/7295804/is-that-possible-to-check-was-oncreate-called-because-of-orientation-change
Ao tentar usar a resposta que foi apontada como solução, ganhei deprecateds e métodos inexistentes. Mais abaixo, encontrei uma solução que funcionava.
Para facilitar, construi uma outra classe, que minhas activities herdarão para eu ter este controle:
public class FixOrientationActivity extends Activity
{
private static int oldConfigInt;
protected boolean rotated;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
rotated =
(oldConfigInt & ActivityInfo.CONFIG_ORIENTATION)
==
ActivityInfo.CONFIG_ORIENTATION;
}
@Override
protected void onDestroy()
{
super.onDestroy();
oldConfigInt = getChangingConfigurations();
}
@Override
protected void onResume()
{
super.onResume();
oldConfigInt = 0;
}
}
Nenhum comentário:
Postar um comentário