Java线程错误IllegalThreadState线程已经启动

And*_*der 7 java android

每当我开始我的线程时,我总是做这个检查.我没有找到任何我在线程上调用start而没有进行下面的检查

if (!myThread.isAlive())
    myThread.start();
Run Code Online (Sandbox Code Playgroud)

然而,我最终得到了IllegalThreadStateException:Thread已经启动了.这实际上崩溃了我的应用程序(android).那么在启动线程之前还需要做一些其他的检查吗?

MBy*_*ByD 11

您应该检查线程是否已经使用getState()启动并仅在其状态为NEW时启动它,否则创建新线程(如果需要).

  • 让我澄清这种方法.if(thread.getState()== Thead.State.NEW) (2认同)

che*_*cal 3

您是否使用 new 为 myThread 引用创建一个新实例?您只能在单个实例上执行一次 myThread.start() 。

检查它是否还活着并不是正确的方法。创建一个新实例。