在我的Android应用程序中,我有一个线程,我从Web服务中获取数据。 所以通常它运行良好,但有时如果连接太慢,它会挂起。 那么有什么方法我可以设置一些时间说1分钟,如果线程进程不是 在1分钟内完成然后我想停止这个线程并向用户显示一条消息,告知连接是弱/慢,稍后再试。 请帮忙!!
答案 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方法都可以被中断,所以你只需要担心自己的代码。