2010-08-18 63 views
1

当我的主要活动暂停时,我需要更新我的AppWidget。我试图用我的主要活动的的onPause()下面的代码:从程序内更新AppWidget?

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

当我把这个代码,但是,a是空的。我究竟做错了什么?

回答

6

我使用此代码来更新我的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);