手机开发时侯,我们访问网络数据,经常因为各种原因会导致网络缓慢或者失去连接

这时候,由于HttpConnection.getResponseCode()请求是阻塞的,我们的程序一般是单独线程去请求数据,该线程就会永远的等在那,并且事后即使连上了,接收到的数据一般都已经是我们抛弃的了.此时我们很想在请求超时的时侯将这个阻塞的请求异步关闭它,但是这样是无法实现的.

一种方法是,我们直接用Connector.open的超时参数

另一种方法我们自己控制,在后面接收数据的时侯中断掉.

1 我们给HTTP请求线程封装上计时器

2 在接收数据时侯,避免一个大byte[]读完,而是while循环读取固定大小的块

3 在while读取数据时候,加入判断超时条件

这样一来,如果是已经过时的数据,我们即使接到请求相应了,但是我们不必去接收它的数据,一来节省资源,而来为用户节省流量.