【发布时间】:2012-01-30 03:48:36
【问题描述】:
在我的 appWidgetProvider 中,每次我需要更新 appWidget 时,我都必须创建新的 RemoteViews 对象并为其分配属性:
RemoteViews views = new RemoteViews(context.getPackageName(),layout);
views.setOnClickPendingIntent(R.id.widgetLayout, pendingIntent);
view.setFloat(R.id.nick, "setTextSize", wParameters.getFontSize());
view.setTextViewText(R.id.nick,wParameters.getNick());
.........etc
appWidgetManager.updateAppWidget(appWidgetId, views);
但实际上,我只需要更改一件事,就是 TextView 文本。
我能否以某种方式存储 RemoteViews 以便在下次更新时重复使用它,并且只是应用
view.setTextViewText(R.id.nick,wParameters.getNick());
appWidgetManager.updateAppWidget(appWidgetId, views);
再来一次?
或者以某种方式获取之前使用的 RemoteViews 对象?
我想实现这一点,因为在我的 appWidget 中再次设置新的 RemoteViews 对象属性的过程非常昂贵。
假设我的小部件由 TextView 和 ImageView 组成。 ImageView 的图像是在小部件的 configureActivity 中选择的(对于 appWidget 的每个实例都是唯一的),但图像处理成本很高。 每次更新都需要更改 TextView 文本。 我想保持 ImageView 图像原样,只更改 TextView 的文本。是否可以在不更新 imageView 的情况下更新 TextView?
很高兴得到任何帮助和想法! 谢谢你,Gal。
【问题讨论】:
标签: java android android-widget android-appwidget