我读到 Android 中的主 UI 线程不应该调用 sleep。
但是,我的应用程序需要:
- 从主 UI 线程调用 thread1
- 从主 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/