Android - AppWidgetProvider在配置活动后刷新内容

时间:2012-03-05 00:13:32

标签: android android-activity refresh android-appwidget

我有一个从appWidget按钮触发的配置活动。如果在配置活动中更改了应用程序的某些参数,则保存后我应该关闭当前活动(finish())并刷新appWidjet textviews内容。我有什么机会强制刷新/更新? 谢谢!

2 个答案:

答案 0 :(得分:1)

您使用待定意图从您的AppsWidget启动活动,当您执行任何操作(如按钮单击)时,您可以更改和刷新appswidget,您应该使用以下代码:

 RemoteViews views = new RemoteViews(getPackageName(), R.layout.appswidget);
 views.setTextViewText(R.id.txtInfo, "Tiwari");
 ComponentName thisWidget = new ComponentName(v.getContext(), WidgetProvider.class);
 AppWidgetManager manager = AppWidgetManager.getInstance(InfoActivity.this);
 manager.updateAppWidget(thisWidget, views);

此处将更新的RemoteViews视图,以及appWidgetProvider的manager.updateAppWidget(),onUpdate()将在appWidget上调用并刷新。

您将获得here一个很好的演示。

答案 1 :(得分:0)

我建议您从配置活动向窗口小部件发送广播消息。 当您想要刷新其状态时,您将向其发送的相同广播消息。

Intent refreshIntent = new Intent(this, WidgetProvider.class);
refreshIntent.setAction(WidgetProvider.ACTION_RELOAD);
refreshIntent.putExtra(WidgetProvider.EXTRA_WIDGET_ID, widgetId); 
sendBroadcast(refreshIntent);

在WidgetProvider上,您只需处理收到的新消息

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
            // do your stuff here on ACTION_RELOAD
    }