【问题标题】:Is it possible to call appWidgetManager.updateAppWidget() in worker thread?是否可以在工作线程中调用 appWidgetManager.updateAppWidget() ?
【发布时间】:2021-11-30 22:15:28
【问题描述】:

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

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

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

最后我打电话给appWidgetManager.updateAppWidget(appWidgetId, remoteViews),应用小部件已正确更新。

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

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

【问题讨论】:

    标签: android android-widget android-anr-dialog


    【解决方案1】:

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

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

    我想知道我仍然可以在工作线程中调用 appWidgetManager.updateAppWidget() 吗?

    RemoteViews 是一种数据结构,用于描述 另一个进程 将呈现的 UI。欢迎您创建这样的数据结构并在后台线程上将其交给操作系统。该其他进程将使用其主应用程序线程来呈现您的RemoteViews 描述的 UI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多