当应用程序再次启动时,Android thread.join()线程强制关闭

时间:2011-08-17 16:12:02

标签: android multithreading surfaceview java-threads android-homebutton

我的应用有问题。我有一个SurfaceHolder用于绘制到画布上。
在surfaceCreated方法下,我打电话给thread.start();
在surfaceDestroyed方法下,我调用thread.join();
我运行我的应用程序并按下主页键,然后再调用surfaceDestroyed方法。

问题是当我随后尝试再次运行我的应用程序时,我得到一个线程已经启动异常。为什么是这样?我甚至正在测试线程是否已经使用isAlive()运行。我是否需要将thread.join行替换为thread.wait
如果是这样,我怎样才能恢复线程,而不是在surfaceCreated中重新开始?

1 个答案:

答案 0 :(得分:1)

首先 - wait方法不会导致线程挂起 第二 - join等待线程死亡 第三 - 我会考虑创建一个新线程,而不是尝试运行相同的线程。