当 Android 中的 Activity 内容更改时,小部件不更新

Posted

技术标签:

【中文标题】当 Android 中的 Activity 内容更改时,小部件不更新【英文标题】:Widget not updating when Activity content changes in Android 【发布时间】:2011-12-29 20:55:12 【问题描述】:

我有一个小部件,其内容与实际应用中看到的非常相似,即图像和文本的比例较小。

我正在使用以下代码在活动 UI 更新后更新小部件 - 只是它不工作并且小部件不更新:

Intent i = new Intent(mContext, ExtensionOfAppWidgetProvider.class);
i.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
mContext.sendBroadcast(i);

如果不删除小部件然后将其放回主屏幕,我无法调用 AppWidgetProvider 类的 onUpdate()。

感谢任何帮助。

谢谢。

【问题讨论】:

【参考方案1】:

这是罪魁祸首……我的 AppWidgetProvider 类的 onReceive() 中缺少几行代码。

AppWidgetManager mgr = AppWidgetManager.getInstance(context);

int[] ids = mgr.getAppWidgetIds(new ComponentName(context, PromoStackWidgetProvider.class));

for(int id : ids) 
        mgr.notifyAppWidgetViewDataChanged(id, R.id.stack_view);
    

【讨论】:

【参考方案2】:

确保您的小部件在您的 androidManifest.xml 中将自己作为注册的广播接收器

【讨论】:

以上是关于当 Android 中的 Activity 内容更改时,小部件不更新的主要内容,如果未能解决你的问题,请参考以下文章

2.5 Activity生命周期

Android四大组件——Activity

Android中的Activity的小技巧

Android安卓四大组件之Activity

Android安卓四大组件之Activity

android对应生命周期中应该释放哪些资源