OnClick PendingIntent en widget a veces no funciona

Tengo un widget y 4 botones en él. Los botones son realmente accesos directos a otras aplicaciones. He definido una intención pendiente onClick para cada uno de los botones con este código:

Intent i = context.getPackageManager().getLaunchIntentForPackage(s); PendingIntent pi = PendingIntent.getActivity(context, 0, i, Intent.FLAG_ACTIVITY_NEW_TASK); remoteViews.setOnClickPendingIntent(curIconId, pi); 

Por lo general, funciona bien, pero a veces no hace nada y en el logcat veo una SendIntentException con el mensaje "No se puede enviar intención pendiente".

Si actualizo el widget (es decir, estableciendo la intención pendiente de nuevo), funciona bien de nuevo.

¿Alguna idea de por qué se rompe a veces?

Gracias

Parece que siempre que envíe RemoteViews a un widget, necesita especificar completamente el widget. Si solo especificas parcialmente el widget, si algo hace que tu widget se actualice (como una rotación de pantalla), tu widget solo se recreará con las RemoteViews más recientes.

Aquí está el enlace que me señaló esto a mí http://www.androiddiscuss.com/1-android-discuss/95040.html

Me temo que no puedo contestarle – Tengo el mismo comportamiento en el teléfono de un compañero de trabajo (Motorola), pero no en otros teléfonos.

Puedo señalar, sin embargo, que su PendingIntent.getActivity() flags parámetro es incorrecto: que Intent.FLAG_ACTIVITY_NEW_TASK tiene que ir a Intent i . La llamada getActivity() uno de FLAG_ONE_SHOT , FLAG_NO_CREATE , FLAG_CANCEL_CURRENT , FLAG_UPDATE_CURRENT o uno de los indicadores Intent.FILL_IN_ .

También puedo mencionar que mis clics fallaron a veces hasta que utilicé PendingIntent.FLAG_CANCEL_CURRENT . Esto podría ser la razón por la cual la adición de "datos únicos" ayuda.

El problema era que envié demasiados datos a las vistas remotas (en mi caso, demasiados iconos). Así que la actualización realmente falló. Hay un límite de tamaño en lo que puede enviar, no recuerdo dónde lo leí.

La solución en mi caso era actualizar las imágenes con URL de recursos en lugar de las imágenes reales.

Tuve el mismo problema: el widget no funcionó después de la rotación. El problema en mi widget fue que he sobrepasado el método onReceive y allí tocó la vista para incrementar un valor de texto. He resuelto el problema de duplicar el setOnClickPendingIntent estaba en onUpdate, en el onReceive bien.

  • Ancho más pequeño para Galaxy S y Galaxy S2
  • Buscando el código fuente de los nuevos Widgets del selector de tiempo y fecha de Google Calendar
  • Copia de seguridad y restaurar widgets pantalla de inicio y fondo de pantalla en vivo
  • Android: intento de abrir el menú contextual del widget
  • Utilice PreferenceActivity para configurar widget, ¿cómo recuperar las preferencias?
  • Quitar Widget de la pantalla de inicio cuando se desinstala
  • Los bordes redondos de Android en la barra de progreso en forma de anillo
  • Android: no se puede abrir el contenido: file: /// storage / emulated / 0
  • Uso de GestureOverlayView o algo similar dentro de un Widget de Android
  • El fondo del widget de Android no aparece, no responde
  • ¿Qué es un widget en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.