1

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

现在我这样使用

if (killthread.isAlive()) {

           killthread.interrupt();                  


            }else {

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

}

谢谢毗湿奴

4

2 回答 2

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; 
        }
    } 
}
于 2013-01-17T06:15:07.963 回答
1

如果线程不存在,则意味着

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

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

于 2013-01-17T06:01:20.727 回答