[英]How can I reuse my JFrame to show several GUIs one after the other, instead of creating a new JFrame for each?
[英]Is it possible to reuse RemoteViews in an appWidget instead of creating new ones every time? and how can I store them?
在我的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 Text。
我可以以某种方式存储RemoteView以便在下一个更新中重用它,并仅应用
view.setTextViewText(R.id.nick,wParameters.getNick());
appWidgetManager.updateAppWidget(appWidgetId, views);
再次?
还是以某种方式获取先前使用的RemoteViews对象?
我想要实现这一点,因为在我的appWidget中再次设置新的RemoteViews对象属性的过程非常昂贵。
假设我的小部件由TextView和ImageView组成。 在窗口小部件的configureActivity中选择ImageView的图像(对于appWidget的每个实例都是唯一的),但是图像处理非常昂贵。 TextView文本需要在每次更新中进行更改。 我想保持ImageView图像不变,只更改TextView的文本。 是否可以在不更新imageView的情况下更新TextView?
如有任何帮助和想法,我们将非常高兴! 谢谢你,加尔
但实际上,我只需要更改一件事,即TextView Text。
然后仅更改“ TextView文本”。
AFAIK,只要保持相同的布局ID,就不需要更新布局中的每个小部件。 但是,您有责任始终知道应用程序小部件是否先前已渲染过,这可能会很棘手。 因此,通常每次更新每个小部件都更为简单。
我可以以某种方式存储RemoteView以便在下次更新时重用它
没有。
还是以某种方式获取先前使用的RemoteViews对象?
没有。
我想要实现这一点,因为在我的appWidget中再次设置新的RemoteViews对象属性的过程非常昂贵。
然后在由AppWidgetProvider
启动的IntentService
进行工作,就好像它是如此昂贵一样,您不想在主应用程序线程上进行这项工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.