是否可以在工作线程中调用 appWidgetManager.updateAppWidget() ?
Posted
技术标签:
【中文标题】是否可以在工作线程中调用 appWidgetManager.updateAppWidget() ?【英文标题】:Is it possible to call appWidgetManager.updateAppWidget() in worker thread? 【发布时间】:2021-11-30 22:15:28 【问题描述】:喂?我正在制作一个安卓应用小部件。
我的小部件中有许多来自 DB 的数据相关 ui。
所以为了避免广播接收器 ANR 问题,我做了一个 remoteView 并从 db 加载数据并在 remoteView 中设置数据相关的 ui。
最后我打电话给appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
,应用小部件已正确更新。
但是,我记得 UI 更新相关的逻辑必须在 UI 线程中。
那么,我想知道我还能在工作线程中调用 appWidgetManager.updateAppWidget() 吗?
【问题讨论】:
【参考方案1】:我记得UI更新相关的逻辑必须在UI线程中。
正确,但您的代码与应用中的 UI 无关。
我想知道我仍然可以在工作线程中调用 appWidgetManager.updateAppWidget() 吗?
RemoteViews
是一种数据结构,用于描述 另一个进程 将呈现的 UI。欢迎您创建这样的数据结构并在后台线程上将其交给操作系统。该其他进程将使用其主应用程序线程来呈现您的RemoteViews
描述的 UI。
【讨论】:
以上是关于是否可以在工作线程中调用 appWidgetManager.updateAppWidget() ?的主要内容,如果未能解决你的问题,请参考以下文章