问题描述
|
在我的Android应用程序中,我有一个线程可以从Web服务中获取数据。
因此,通常情况下它可以正常工作,但有时如果连接速度太慢,则可能会挂起。
有什么办法可以设置一些时间,例如1分钟,如果线程进程不是
1分钟内完成。那么我想停止该线程并向用户显示一条消息,指出连接弱/慢,请稍后再试。
请帮忙 !!
解决方法
我不知道Android是否支持它,但这正是ExecutorService返回的Future对象应该为您做的。特别是,如果任务已开始但尚未完成,则可以使用cancel(boolean)方法来中断该任务。
编写任务时应注意它们可能会被打断,如果已经打断,则应彻底中止。大多数框架IO方法都可以被中断,因此您只需要担心自己的代码即可。
,这是一个坏主意。出于良好原因,不赞成使用
Thread.stop
方法。
我建议您执行以下操作:根据您的喜好设置网络超时。如果这样做没有帮助,我建议您只是丢弃对该线程的引用(忽略它,使其消亡并收集垃圾),并以关于网络故障的好消息响应。您可以很好地启动新线程以再次尝试。
,您可以使用的方法:Thread.interrupt();
不推荐使用Thread.stop()方法
,创建这样的stop方法,然后调用中断。
public void stop() {
Thread currentThread= someThread;
someThread= null;
currentThread.interrupt();
}