Android setTextViewText在IntentService中不工作

Android setTextViewText在IntentService中不工作,android,android-appwidget,intentservice,remoteview,Android,Android Appwidget,Intentservice,Remoteview,OnHandleContent中的代码如下: RemoteViews views = new RemoteViews(getPackageName(), R.layout.mylayout); views.setTextViewText(R.id.txtView1, "some string"); ... Bundle bundle = intent.getExtras(); int id = bundle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);

OnHandleContent中的代码如下:

RemoteViews views = new RemoteViews(getPackageName(), R.layout.mylayout);
views.setTextViewText(R.id.txtView1, "some string");
...
Bundle bundle = intent.getExtras();
int id = bundle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(id, views);

不更新小部件名为txtView1的TextView。我搜索了又搜索,但似乎我所做的一切都与我找到的相符。

您需要处理程序从工作线程更新UI

您可以从本教程获得帮助

或者,如果您不想涉及线程和处理程序的内容,也可以使用
Asynctask

Asynctask
自行管理这些内容,您可以在onPostExecute()方法中更新UI等等


你可以在谷歌android开发者网站上阅读有关asynctask的详细信息。

你必须在应用程序小部件开发中更新你的textview

  RemoteViews views = new RemoteViews(getPackageName(), R.layout.mylayout);
    views.setTextViewText(R.id.txtView1, "some string");
    thisWidget = new ComponentName(context, WatchWidget.class);  
    appWidgetManager.updateAppWidget(thisWidget, remoteViews);

唉,谢谢大家的回答,不幸的是这是我的错误。在自定义AppWidgetProvider的onUpdate中,我传递了错误的Id。我现在已将其切换到正确的Id,并且每个小部件实例都会正确更新。

服务在后台运行,您无法直接从服务更新ui。用把手是的,同意。这也是为什么祝酒不起作用。但是,RemoteView可能处于另一个进程中。@Harshid的答案几乎有效,但它更新了所有实例。可能也会有帮助,谢谢@Harshid,这让我比以前走得更远,但是,它同时更新了所有实例。