在android中以睡眠模式杀死一个线程

时间:2013-01-17 05:55:07

标签: java android

我有一个Android应用程序,它有一个线程,每1分钟后运行一次。 所以我的问题是,当我点击一个按钮,我必须重置应用程序,这意味着,它将是 一个新的应用程序 所以现在当我点击该按钮时,所有数据库和共享首选项都将清除。 但线程将重新开始。

现在正在使用这样的

if (killthread.isAlive()) {

           killthread.interrupt();                  


            }else {

              // Here what'll i do, I mean how to kill that thread, which in sleep mode.

}

谢谢 毗

2 个答案:

答案 0 :(得分:2)

  

感谢您的回复,在这里,当我点击该按钮时,会出现在其他部分,但是1分钟后,线程将会启动。那么如何在阶段停止?

这将与线程本身有关。我敢打赌,你已将其编码为忽略中断。


好的,这是您评论中的代码。

public void run() { 
    while (true) { 
        try { 
            Thread.sleep(60000); 
        } catch (InterruptedException e) { 
            // TODO Auto-generated catch block 
        }
    } 
}

这样做是为了捕获并默默地忽略线程被中断时发生的异常......并继续前进。

如果你想让它停在中断上,它应该是......或类似的东西。

public void run() { 
    while (true) { 
        try { 
            Thread.sleep(60000); 
        } catch (InterruptedException e) { 
            return; 
        }
    } 
}

答案 1 :(得分:1)

如果一个线程没有存活,则意味着

1)它死了/完了。你不能/不需要做任何事情。

2)它是新创建的/尚未启动。那就是Thread.start()还没有被调用。在这种情况下,Thread.interrupt()将不起作用。你唯一能做的就是一些自定义逻辑 - 通知将要启动不再需要的线程的代码