Java setTextViewText不更新小部件

Java setTextViewText不更新小部件,java,android,android-widget,Java,Android,Android Widget,下面显示的是我的课程的简化版本。我在onReceive方法中遇到问题,该方法没有更新小部件TextView。它在logcat中显示正确的信息,该信息在setTextViewText之前的行上输出。我不确定出了什么问题,一直在拔头发(而且我已经秃顶了) 公共类SnowWidget扩展了AppWidgetProvider{ public static List mymtns=new ArrayList(); 公共静态远程视图远程视图; 公共静态组件名称thisWidget; 公共静态字符串amoun

下面显示的是我的课程的简化版本。我在onReceive方法中遇到问题,该方法没有更新小部件TextView。它在logcat中显示正确的信息,该信息在setTextViewText之前的行上输出。我不确定出了什么问题,一直在拔头发(而且我已经秃顶了)

公共类SnowWidget扩展了AppWidgetProvider{
public static List mymtns=new ArrayList();
公共静态远程视图远程视图;
公共静态组件名称thisWidget;
公共静态字符串amount=“”;
公共静态字符串mtn_name=“”;
公共静态字符串desc=“”;
公共静态字符串条件=”;
公共静态字符串[]类型;
公共静态int索引=0;
@凌驾
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,
int[]appWidgetIds)
{
RemoteView=新的RemoteView(context.getPackageName(),R.layout.main);
thisWidget=新组件名(上下文,SnowWidget.class);
//这个很好用
remoteViews.setTextViewText(R.id.snowwidget,mtn\u名称+“\n”+金额+“\”\n”+条件);
/*让按钮工作*/
Intent next=新的Intent(上下文,SnowWidget.class);
接下来是setAction(ACTION\u WIDGET\u RECEIVER);
PendingEvent NextPendingEvent=PendingEvent.getBroadcast(上下文,0,下一步,0);
RemoteView.setOnClickPendingEvent(R.id.nextMtn,nextPendingEvent);
/*结束-使按钮工作*/
UpdateAppWidgetManager.updateAppWidget(此小部件,远程视图);
}
@凌驾
公共void onReceive(上下文、意图){
//检查,如果我们的行动被调用
if(intent.getAction().equals(ACTION\u WIDGET\u RECEIVER)){
如果(mymtns.size()>0)
{
//这在logcat中正确显示
Log.d(“onReceive”,“New Info=>”+mtn\u name+“\n”+amount+“\”\n”+条件);
//这永远不会更新我的小部件
remoteViews.setTextViewText(R.id.snowwidget,mtn\u名称+“\n”+金额+“\”\n”+条件);
}
}
super.onReceive(上下文、意图);
}

}

找到了答案。在调用
远程视图.setTextViewText
后,您需要通过调用
updateAppWidget
更新小部件。我添加的代码如下所示

AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, remoteViews);

非常感谢!很难描述这个问题给我带来了多大的麻烦。我有这段代码,但它仍然不工作。虽然它以前是。我不知道发生了什么。你在哪里添加了那几行代码?我的小部件似乎无法工作。我为配置活动传递了错误的标志,但没有更新widgetId:PendingEvent.getActivity(context,0,intent,0)而不是:PendingEvent.getActivity(context,0,intent,PendingEvent.FLAG_update_CURRENT)多亏了Ivan,我用FLAG_单发出现了奇怪的行为,当我将FLAG设置为0时,它不再刷新。
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, remoteViews);