是否可以在工作线程中调用 appWidgetManager.updateAppWidget() ?

Is it possible to call appWidgetManager.updateAppWidget() in worker thread?

喂?我正在制作一个 android 应用小部件。

我的小部件中有许多来自数据库的 ui 相关数据。

所以为了避免广播接收器 ANR 问题,我制作了一个 remoteView 并从数据库加载数据并在 remoteView 中设置相关的数据 ui。

最后我调用了 appWidgetManager.updateAppWidget(appWidgetId, remoteViews),应用小部件已正确更新。

但是,我记得UI更新相关的逻辑必须在UI线程中。

所以,我想知道我还能在工作线程中调用 appWidgetManager.updateAppWidget() 吗?

I remember that UI update related logic must be in UI thread.

正确,但您的代码与应用中的 UI 无关。

I wonder that can I still call appWidgetManager.updateAppWidget() in worker thread?

A​​ RemoteViews 是一种数据结构,它描述 另一个进程 将呈现的 UI。欢迎您创建这样的数据结构并将其交给后台线程上的 OS。另一个进程将使用其主应用程序线程来渲染 RemoteViews 描述的 UI。