【发布时间】:2016-10-18 06:16:04
【问题描述】:
当我在程序中调用start()方法第二次时,以下代码会导致java.lang.IllegalThreadStateException: Thread already started。
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
这发生在 秒 次 updateUI.start() 被调用。我已经多次遍历它,线程被调用并在点击updateUI.start()之前完全运行到完成。
调用updateUI.run() 可以避免错误,但会导致线程在 UI 线程(调用线程,如 SO 上的其他帖子中提到的)中运行,这不是我想要的。
一个线程可以启动一次吗?如果是这样,如果我想再次运行线程该怎么办?这个特定的线程正在后台进行一些计算,如果我不在线程中进行计算,而不是在 UI 线程中进行计算,并且用户等待的时间过长。
【问题讨论】:
-
你为什么不直接阅读 javadoc - 它清楚地描述了合同。
标签: java android multithreading