Android java线程没有停止

时间:2014-07-15 19:19:38

标签: java android multithreading

我在我的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();
    }
}

1 个答案:

答案 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();