如何在java中停止一段时间后的线程?

时间:2011-05-25 09:08:56

标签: java android multithreading

在我的Android应用程序中,我有一个线程,我从Web服务中获取数据。 所以通常它运行良好,但有时如果连接太慢,它会挂起。 那么有什么方法我可以设置一些时间说1分钟,如果线程进程不是 在1分钟内完成然后我想停止这个线程并向用户显示一条消息,告知连接是弱/慢,稍后再试。 请帮忙!!

4 个答案:

答案 0 :(得分:1)

这是一个坏主意。 {Ol}已弃用Thread.stop方法。

我建议您执行以下操作:根据您的偏好设置网络超时。如果这没有帮助,我建议你只是丢弃对线程的引用,(忽略它,让它消失并收集垃圾)并回复一个关于网络故障的好消息。你可以很好地开始一个新的线程再次尝试。

答案 1 :(得分:0)

您可以使用以下方法:Thread.interrupt(); 方法 Thread.stop() 已弃用

答案 2 :(得分:0)

创建一个这样的停止方法,然后调用中断。

public void stop() {
    Thread currentThread= someThread;
    someThread= null;
    currentThread.interrupt();
}

答案 3 :(得分:0)

我不知道Android是否支持它,但这正是从Future返回的ExecutorService对象应该为您做的事情。特别是,如果任务已经启动但未完成,cancel(boolean)方法可用于中断任务。

应该写下这些任务,以便知道它们可能会被打断,并且如果已经中断,就会彻底中止。大多数框架IO方法都可以被中断,所以你只需要担心自己的代码。