gpt4 book ai didi

java - 是否可以在 appWidget 中重用 RemoteView 而不是每次都创建新的?我该如何存储它们?

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:00 25 4
gpt4 key购买 nike

在我的 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。

我能否以某种方式存储 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。

最佳答案

But in fact, I only need to change one thing which is the TextView Text.

然后只更改“TextView 文本”。

据我所知,只要您保持相同的布局 ID,您就不需要更新布局中的每个小部件(如果您不想的话)。但是,您有责任始终知道应用小部件之前是否已呈现,这可能会变得棘手。因此,每次更新每个小部件通常更简单。

Can I somehow store the RemoteViews for reusing it on the next update

没有。

Or get the previously used RemoteViews object somehow?

没有。

I want to achieve this because the process of setting the new RemoteViews object properties again is very expensive in my appWidget.

然后在由您的 AppWidgetProvider 启动的 IntentService 中完成这项工作,就好像它那么昂贵一样,您不想在主应用程序上完成这项工作线程。

关于java - 是否可以在 appWidget 中重用 RemoteView 而不是每次都创建新的?我该如何存储它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com