我在我的Android应用程序中有线程完成了它的任务但仍然没有退出,当我再次运行时我得到错误,线程已经存在
我的帖子
Thread mythreads = new Thread()
{
@Override
public void run() {
// do some work
// exit point
}
};
所以请问我怎么能阻止这个甚至线程完成它的代码执行,但是当我再次尝试运行它时会给我错误
java.lang.IllegalThreadStateException: Thread already started
我尝试用我的threadkill功能代码停止它但没有成功
public void killthread(Thread tname){
try {
if (tname.isAlive()) {
Log.d("tag1","Thread is Alive");
tname.interrupt();
tname = null;
}
}catch (Exception e){
e.printStackTrace();
}
}
答案 0 :(得分:1)
线程对象只能启动一次。如果您需要stop/interrupt
一个Thread
,然后想再次启动它,则应创建一个新实例,并在其上调用start()
:
thread.interrupt();
thread = new YourThreadSubclass();
thread.start();
在你的情况下,你正在做Thread mythreads = new Thread()
所以它根本不应该是一个问题,除非你在完成执行之前明确地试图阻止它。
创建匿名线程
new Thread()
{
public void run() {
//Your code
}
}.start();