AppWidgetManager getAppWidgetIds devolviendo identificadores de Widget antiguos

Estoy tratando de obtener una lista de todas las instancias de ACTIVE de mi widget. En el método OnUpdate de mi AppWidgetProvider, estoy haciendo lo siguiente:

// Get all ids ComponentName thisWidget = new ComponentName(context, this.getClass()); int[] lastWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); 

El problema es que si agregas un widget a tu pantalla de inicio y lo eliminas, getAppWidgetIds devuelve una lista que contiene entre otras el ID del widget que acabas de eliminar.

¿Hay una manera de recuperar los identificadores de sólo los widgets que están activos en la pantalla de inicio?

Me encontré con esto también. Supongo que getAppWidgetIds está simplemente programado para obtener siempre todos los identificadores asociados con ese proveedor de widgets. Para solucionar esto, tuve que guardar el ID de Widget a mis preferencias compartidas guardando el id en el método onUpdate y eliminándolo en el método onDelete de mi AppWidgetProvider.

 public class MyProvider extends AppWidgetProvider { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // Update your widget as normal // If the Id isn't already saved to your db/app preference, save it now } public void onDeleted (Context context, int[] appWidgetIds) { // Remove each id passed in through appWidgetIds // "un-save" them from your db or app preferences } } 
  • Appwidget Máximo ancho que se adapta a todos los tamaños de pantalla
  • Android: pruebas de instumentación para widgets de aplicaciones
  • Cómo configurar correctamente un icono de widget grande en android
  • Widget de la aplicación de Android listview onclick listener
  • Obtener otras aplicaciones icono uri?
  • ¿Cómo obtener el tamaño del widget de la aplicación?
  • Appwidget se congela y se niega a actualizar más: ignora updateAppWidget
  • Expectativa del puntero nulo de UpdateAppWidget
  • Makecaleupanimation de appwidget
  • Error de FileProvider
  • AppWidget no se muestra en la lista de widgets de lanzador en dispositivos de lollipop solamente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.