java - UI 线程等待其他线程执行 - 不工作

标签 java android multithreading imageview

我读到 Android 中的主 UI 线程不应该调用 sleep。

但是,我的应用程序需要:

  1. 从主 UI 线程调用 thread1
  2. 从主 UI 线程调用 thread2。

使用 2 个线程的输出(2 个图像),添加它们,然后显示它们。

我正在使用 Thread.sleep() ,以便主线程等待 thread1 和 thread2 直到它们完成。但是,当我在主线程中( sleep 后)调用它后,mImageview.setbitmap 不起作用。

你能告诉我该怎么做吗?

最佳答案

Android 中的多线程应该异步完成。为此,您应该使用AsyncTask-class .

对于您的情况,您可以创建一个任务来加载(或处理)这两个图像。当进程正在运行时(在另一个线程中,脱离 UI 线程),您可以显示 ProgressBar向用户显示您的应用程序当前正忙(然后在 UI 线程上完成)。

任务完成后,您将获得任务结果(两个图像),隐藏进度栏并向用户显示所有内容。

尽管无 react 的 GUI 总是感觉您的应用程序卡住了,但如果 UI 线程被阻塞超过 5 秒(这是一个很长的时间),您的应用程序将被强制关闭,因为它没有“ react ”(并且将引发ANR)。

关于java - UI 线程等待其他线程执行 - 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10087274/

相关文章:

java - 如何使用 JodaTime 解析格式 "HHmm"的持续时间?

java - 错误 : Unable to load configuration. - 操作,在 eclipse 上的 apache 上运行 Struts 2 时由 : Action class not found , 引起

android - 谷歌警告开发者为 Android 应用程序包含 64 位版本

java - Jdk1.7.0_79如何安装/配置iText7

java - 如何使用数据流运行程序将 hyperLogLog 字段从 ApacheBeam 保存到 BigQuery

java - Android 如何将带有重音符号的文本发送到 PHP

android - Activity 返回图像

ios - 如何在使用 DispatchQueue 时停止从主线程快速执行正在运行的后台线程

java - 通过上下文对象的同步 getter 实现线程安全

java - 套接字 - 软件导致连接中止 : recv failed