2010-08-18 6 views
1

J'ai besoin de mettre à jour mon AppWidget lorsque mon activité principale s'arrête. J'ai essayé d'utiliser le code suivant dans mon OnPause() de l'activité principale: cependant,Mise à jour AppWidget dans le programme?

super.onPause(); 
AppWidgetManager manager = AppWidgetManager.getInstance(this); 
int[] a = manager.getAppWidgetIds(new ComponentName(this, "WidgetProvider")); 
new WidgetProvider().onUpdate(this, manager, a); 

Quand j'appelle ce code, a est vide. Qu'est-ce que je fais mal?

Répondre

6

J'utiliser ce code pour mettre à jour mon AppWidget:

AppWidgetManager manager = AppWidgetManager.getInstance(this); 
int[] a = manager.getAppWidgetIds(new ComponentName("my.pkg", "WidgetProvider")); 
List<AppWidgetProviderInfo> b = manager.getInstalledProviders(); 
for (AppWidgetProviderInfo i : b) { 
    if (i.provider.getPackageName().endsWith("pkg")) { 
     a = manager.getAppWidgetIds(i.provider); 
    } 
} 
new WidgetProvider().onUpdate(this, manager, a);