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