2010-08-18 66 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);