如何在不重建所有 RemoteView 的情况下部分更新应用小部件中的视图

Posted

技术标签:

【中文标题】如何在不重建所有 RemoteView 的情况下部分更新应用小部件中的视图【英文标题】:How to partially update views in an app widget without rebuilding all the RemoteViews 【发布时间】:2012-08-02 05:54:56 【问题描述】:

我正在实现一个应用小部件,我希望能够更改小部件布局中单个视图的属性,而无需从头开始重建所有 RemoteViews,这涉及加载 XML 等,而这不是在某些情况下是必要的.. 有没有办法说“在当前小部件布局中由特定 ID 标识的视图上更新属性 X”?我已经看到partiallyUpdateAppWidget 类中有一个partiallyUpdateAppWidget 方法,但我不明白,也不能理解它是否是为此目的,也不能使用它。你能帮我或指出一个有用的方法吗?链接或示例?

【问题讨论】:

【参考方案1】:

是的,您可以在AppWidgetManager 类中使用partiallyUpdateAppWidget 方法。 例如,如果要更新小部件内的文本视图:

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
rv = new RemoteViews(context.getPackageName(), R.layout.widgetlayout); 
rv.setTextViewText(R.id.ofTextViewInWidgetLayoutXML, "Hello World");
appWidgetManager.partiallyUpdateAppWidget(appWidgetIds, rv);

参考: Just update a widget RemoteViews instead of completly creating a new one?

【讨论】:

以上是关于如何在不重建所有 RemoteView 的情况下部分更新应用小部件中的视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 +150k 静态页面重建应用的情况下添加新页面?

React Native XCode 项目在不更改任何内容的情况下重建

在不丢失 ElasticIP 的情况下重建 Elastic Beanstalk 环境

在不重建项目的情况下无法在 Android Studio 中找到符号

Core Data:如何删除和重建数据存储?

如何在不使用 JPA 的情况下保持在 SpringBoot/GraphQL 中打开的 Hibernate 事务?