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

在java中,如何在一段时间后停止线程?,java,android,multithreading,Java,Android,Multithreading,在我的android应用程序中,我有一个从web服务获取数据的线程。 所以通常情况下,它工作得很好,但有时如果连接太慢,它会挂起。 那么,有没有什么方法可以让我设置一些时间,比如说1分钟,如果线程进程不是这样的话 在1分钟内完成。然后我想停止此线程,并向用户显示连接弱/慢的消息,稍后再试。 请帮忙 这是个坏主意。Thread.stop方法因某些原因而被弃用 我建议您执行以下操作:根据您的喜好设置网络超时。如果这没有帮助,我建议您干脆扔掉对线程的引用(忽略它,让它消失并被垃圾收集),然后用一条关于

在我的android应用程序中,我有一个从web服务获取数据的线程。 所以通常情况下,它工作得很好,但有时如果连接太慢,它会挂起。 那么,有没有什么方法可以让我设置一些时间,比如说1分钟,如果线程进程不是这样的话 在1分钟内完成。然后我想停止此线程,并向用户显示连接弱/慢的消息,稍后再试。
请帮忙

这是个坏主意。
Thread.stop
方法因某些原因而被弃用


我建议您执行以下操作:根据您的喜好设置网络超时。如果这没有帮助,我建议您干脆扔掉对线程的引用(忽略它,让它消失并被垃圾收集),然后用一条关于网络故障的好消息来响应。您可以很好地启动一个新线程以重试。

您可以使用以下方法:
thread.interrupt()

方法Thread.stop()不推荐使用

创建一个类似这样的stop方法,然后调用interrupt

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

我不知道Android是否支持它,但这正是从返回的对象应该为您做的。特别是,如果任务已开始但尚未完成,则可以使用该方法中断任务


编写任务时,应意识到任务可能会被中断,如果任务被中断,则应彻底中止。大多数框架IO方法都可能被中断,因此您只需要担心自己的代码。

让线程被垃圾收集的可能重复是正确的方法,您的代码应该支持这一点。当一个错误发生在我身上时,我会关闭我的套接字连接,删除所有的观察者,线程就会被安卓系统很好地关闭。你能告诉我你想用这个定时器做什么,以便找到解决方案吗??