![](/img/trans.png)
[英]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.