在Stack溢出的某个地方,有一天我发现了以下代码,并对我的应用程序做了一些调整:
private void updateWidget() {
AppWidgetManager widgetManager = AppWidgetManager.getInstance(ctx);
ComponentName widgetComponent = new ComponentName(ctx, MyAppWidgetProvider.class);
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
Intent update = new Intent();
update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
ctx.sendBroadcast(update);
}这应该以编程方式刷新应用程序小部件的所有实例。ctx是我在onCreate()中设置的Activity的上下文(this),上面的方法在Activity的onStop()方法中被调用。
不幸的是,当它被调用时,它会将应用程序的小部件替换为其他应用程序的小部件(例如AP新闻)--至少有一段时间。
怎么会发生这种事?密码有什么问题吗?
谢谢!
编辑#1:来更清楚地指出这一点:我已经为自动刷新定义了一个间隔。但除此之外,我还想不时地从Activity中更新这个小部件。This question认为这也是可能的。
编辑#2: --我刚刚看到错误的小部件只显示了几秒钟。在此之后,我自己的应用程序的小部件再次显示。
发布于 2012-06-24 18:15:58
在小部件之外运行更新函数有什么原因吗?在我看来,使用updatePeriodMillis属性更有意义吗?您可以将该属性设置为希望小部件调用onUpdate()的频率,后者可以提供更新的信息。
http://developer.android.com/guide/topics/appwidgets/index.html#MetaData
https://stackoverflow.com/questions/11179795
复制相似问题