我有一个Android应用程序,它有一个线程,每1分钟后运行一次。 所以我的问题是,当我点击一个按钮,我必须重置应用程序,这意味着,它将是 一个新的应用程序 所以现在当我点击该按钮时,所有数据库和共享首选项都将清除。 但线程将重新开始。
现在正在使用这样的
if (killthread.isAlive()) {
killthread.interrupt();
}else {
// Here what'll i do, I mean how to kill that thread, which in sleep mode.
}
谢谢 毗
答案 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()将不起作用。你唯一能做的就是一些自定义逻辑 - 通知将要启动不再需要的线程的代码