Tengo algunos problemas con mis widgets. Aquí está la descripción:Widget no eliminado al pasar RESULT_CANCELED como resultado de la actividad de configuración
Contexto:
tengo un widget casa.
Cuando lo agrego, aparece una actividad de configuración para establecer algunos parámetros para el widget.
Si llamo a setResult (RESULT_OK, resultValue); antes de finalizar la actividad de configuración, el widget se agrega a la página principal.
Si elimino el widget arrastrándolo a la papelera de reciclaje, public void onDeleted (contexto Contexto, int []) appWidgetIds de mi clase AppWidgetProvider obtiene la llamada. Hasta ahora todo bien.
Problema: Si la actividad de configuración finaliza con código de resultado RESULT_CANCELED (setResult (RESULT_CANCELED);), public void onDeleted (contexto Contexto, Int appWidgetIds []) de mi clase AppWidgetProvider no se llama y el widget permanece en la lista de widgets activos. Cuando reinicio el teléfono, onUpdate (Context context, AppWidgetManager appWidgetManager, int [] appWidgetIds) de mi clase AppWidgetProvider se llama y en int [] appWidgetIds tengo todos los widgets (los ids) que se supone que se cancelarán (eliminados antes de ser agregado) + los activos (los que realmente se muestran en Inicio). Los widgets que se eliminaron al arrastrar a la papelera no se muestran en esta lista. Con el tiempo, esta lista de identificadores de widgets se hace cada vez más grande si el usuario cancela la actividad de configuración.
dice La referencia de la API algo como:. "Si regresa RESULT_OK usando Activity.setResult(), se añadirá el AppWidget, y recibirá una emisión ACTION_APPWIDGET_UPDATE para este AppWidget Si regresa RESULT_CANCELED, el anfitrión, se cancelará agregue y no muestre este AppWidget, y recibirá una transmisión ACTION_APPWIDGET_DELETED ".
¿Alguien puede darme algunas pistas sobre esto? Gracias.
Aquí está mi manifiesta:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<receiver android:name=".MytWidget" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/my_widget_provider" />
</receiver>
<activity android:name=".ConfigurationActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
</application>
El resto del código no es relevante ya que se explicó más arriba (y no tengo permiso para publicarlo).
Parece que tengo el problema documentado aquí: http://code.google.com/p/android/issues/detail?id=2539 – FiDo