Widgets configurados com android: configure receberá onUpdate mesmo se a configuração não estiver concluída
É assim que eu configuro o widget do meu APP:
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="240dp"
android:minHeight="193dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/xyz_appwidget"
android:configure="com.xyz.activity.Configuration"
/>
Portanto, o sistema exibirá oConfiguration
atividade, depois que o widget for colocado na tela inicial pelo usuário. Infelizmente, sem a configuração aplicada, esse widget não deve ser colocado na tela.
Eu adicionei alguma saída de depuração. Isso acontece quando o usuário está selecionando o widget para sua tela inicial.Nota: É quando a atividade de configuração está na frente, NÃO no widget.
I/ActivityManager( 101): Start proc com.xyz for broadcast com.xyz/.widget.xyz.XyzWidgetProvider: pid=14371 uid=10050 gids={3003, 1015}
D/XyzWidgetProvider(14371): onReceive: android.appwidget.action.APPWIDGET_ENABLED
D/XyzWidgetProvider(14371): onEnabled
D/XyzWidgetProvider(14371): onReceive: android.appwidget.action.APPWIDGET_UPDATE
Portanto, isso significa que mesmo o widget não está configurado, os dois eventos (ENABLED, UPDATE) serão acionados.ativado faz sentido para mim, masATUALIZAR claramente não. Especialmente quando oConfiguration
atividade concluída com êxito, não háATUALIZAR evento está sendo enviado.
Também li que, definindo o resultado daConfiguration
atividade paraActivity.RESULT_CANCELED
, é possível cancelar o processo de configuração. Mas como isso claramente é assíncrono, não sei como fazer o processo de configuração.bloqueio? Alguém já encontrou isso antes?
Minha nota final: dei uma olhada no Widget da Galeria do Android, quede alguma forma gerencia isso corretamente, para que um widget de galeria não configurado não seja adicionado. Mas eu suspeito que alguns HTCMagia lá como os logs não são muito úteis.