【问题标题】:Update UI from another thread (progressDialog)从另一个线程更新 UI (progressDialog)
【发布时间】:2011-03-08 14:51:29
【问题描述】:

我搜索并找到了我所遇到的确切问题 (http://stackoverflow.com/questions/4369537/update-ui-from-thread)。不幸的是,我仍然无法正常工作。

我的布局上有一个 ImageView。按下按钮时,会创建并显示 ProgressDialog。当线程处理数据时,它会在 UI 中的处理程序上调用 incrementProgressBy() 方法。在该处理程序中,我使用 setImageBitmap() 更新 ImageView,然后将其无效。它永远不会更新。接下来,我尝试从进度条的线程中调用 ImageView.postInvalidate()。在进度条完成并被移除之前,它仍然不会更新。

有什么想法吗?

【问题讨论】:

  • 就处理程序而言,听起来您做得正确。没有必要使位图无效,因为 setImageBitmap() 已经这样做了。
  • 您应该发布您的代码。您还知道,当您显示 ProgressDialog 时,您的活动会暂停。也许这就是原因?如果没有 ProgressDialog,你能尝试同样的方法吗?
  • 我真的离不开对话框。本质上,用户使用应用程序拍照并输入信息。这些照片稍后会上传到网络服务。进度条指示已删除的照片数量以及剩余的照片数量。由于进度对话框没有覆盖整个屏幕,我认为在后台显示正在发送的图像会很好。

标签: android multithreading user-interface progressdialog


【解决方案1】:

这里的解决方案是使用 AsyncTask。它能够通过处理程序与 UI 进行通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多