我在我的小工具中遇到了完全相同的问题,就像您所描述的一样,并且找不到任何解决方案。我最终做的是某种解决方法,在我的情况下似乎工作正常。我所做的是以下内容,而不是直接从onUpdate()方法更新小部件,我开始了一个处理更新然后自杀的服务。这解决了它在仿真器上和在更新过程中出现小部件的设备上。 下面是一个示例代码:
的的AppWidgetProvider:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
context.startService(new Intent(context, WidgetService.class));
}
的服务:
@Override
public void onStart(Intent intent, int startId) {
started(intent);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
started(intent);
return START_STICKY;
}
private void started(Intent intent) {
//update here the widgets
Context context = getApplicationContext();
updateWidgets(context);
stopSelf();//killing the service
}
private void updateWidgets(Context context) {
AppWidgetManager appmanager = AppWidgetManager.getInstance(context);
ComponentName cmpName = new ComponentName(context, widgetClass);
int[] widgetIds = appmanager.getAppWidgetIds(cmpName);
RemoteViews rView = new RemoteViews(context.getPackageName(), layoutId);
for (int wid : widgetIds) {
//all updates here
rView.setTextViewText(tvId, desc);
appmanager.updateAppWidget(wid, rView);
}
}
注知道为什么这个解决方案解决了问题,但好处是,它 希望这帮助
来源
2012-02-15 21:20:27
sam
如何包含您的AndroidManifest.xml?我的第一个怀疑是你的包名或意向注册或某事有问题。 – fluffy
此外:股票,一些供应商ROM或自定义的? – 2011-09-01 20:25:11
而我股票的意思是香草android。愚蠢的我。 – 2011-09-01 20:41:31