Trabalhando widget e orientação dos tablets

17 views
Skip to first unread message

Daniel Accorsi

unread,
Apr 23, 2014, 2:18:54 PM4/23/14
to androidb...@googlegroups.com
Boa tarde pessoal,

Antes de ficar postando um monte de código aqui, gostaria de saber se alguém já passou por um problema parecido com o que tenho enfrentando. Tenho um widget que funciona perfeitamente. Da mesma forma no tablet, ou seja, os botões funcionam normalmente! Porém ao efetuar a mudança de orientação do tablet os eventos dos botões param de funcionar. O app tem um service que atualiza a cada 12 horas baseado em um webservice. Essa atualização continua normal, apenas os eventos que não são reconhecidos pelo widget. Independente se crio o widget no modo land ou port, o problema está na mudança.

Desde já agradeço!
Att.,
Daniel Accorsi.

Rodolfo Pereira Araujo

unread,
Apr 28, 2014, 10:45:52 AM4/28/14
to androidb...@googlegroups.com
Bom dia Daniel,

Esse problema acontece também quando muda a orientação em outros dispositivos ou só no tablet?
Não sei como você implementou mas uma coisa que pode estar ocorrendo é o seguinte:
Quando você muda a orientação isso altera o ciclo de vida da activity, o comportamento padrão é a criar novamente.
Se você tiver usando alguma referência que não é criada junto com o activity pode ser que esta seja perdida.
Caso seja esse o problema você pode tratar de duas formas:
  1. Sobrescrever o método onConfigurationChanged(Configuration) e tratar o caso;
  2. Alterar o comportamento padrão da Activity para não ser destruída, assim sendo não chama o método.
Isso pode ser feito alterando a propriedade configChanges da activity no AndroidManifest.xml para:
<activity
   
android:name=".MainActivity"
   
android:configChanges="orientation|screenLayout|screenSize" >
</activity>

No seu caso eu tentaria primeiro a opção 2 que é só alterar a configuração e antes de partir para tratar tudo na mão.

Abraço,

Daniel Accorsi

unread,
Apr 28, 2014, 1:03:30 PM4/28/14
to androidb...@googlegroups.com
Olá Rodolfo, boa tarde.

Em primeiro, obrigado pelo retorno.
Sim, isso ocorre somente em tablets, pois estes dispositivos permitem rotacionar a home.

O problema é que não existe a "Main Activity", ou seja, não existe a action no manifest: "android.intent.action.MAIN" de uma Activity. Isso quer dizer que o app é 100% um Widget, é tratado no Manifest como um Receiver, logicamente. 

Como o método com anotação @Override onConfigurationChanged() se trata apenas para classes Activity, não iria se aplicar em classes Widget estendidas de AppWidgetProvider.

Não sei se fui claro na resposta.

Abraços e obrigado.
Att.,
Daniel.





--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/EKnoPDA_7Nk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages