从程序内更新AppWidget?

时间:2010-08-18 16:13:07

标签: android android-appwidget

当我的主要活动暂停时,我需要更新我的AppWidget。我尝试在我的主要活动的onPause()中使用以下代码:

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

但是,当我调用此代码时,a为空。我做错了什么?

1 个答案:

答案 0 :(得分: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);