当wifi功能被关闭时,在Log中看到以下和wifi状态改变有关的日志:

11-04 11:09:34.559: E/WifiService(185): Handle MESSAGE_DISABLE_WIFI.11-04 11:09:34.569: D/DATA(287): [DCT(0) ] intent received :android.net.wifi.WIFI_STATE_CHANGED11-04 11:09:34.569: D/StatusBarPolicy(254): updateWifi: android.net.wifi.WIFI_STATE_CHANGED : wifi state: 0 supplicant connected: false11-04 11:09:34.579: I/wpa_supplicant(8310): CTRL-EVENT-TERMINATING - signal 15 received11-04 11:09:34.579: V/WifiMonitor(185): Event [CTRL-EVENT-TERMINATING - signal 15 received]11-04 11:09:34.579: V/WifiStateTracker(185): handleMessage(): msg.what= 2

在当前程序中没有对wifi断开进行处理,所以出现以下异常:

11-04 11:09:35.889: E/DownThread(7389): Connection timed out11-04 11:09:35.889: E/DownThread(7389): java.net.SocketException: Connection timed out11-04 11:09:35.889: E/DownThread(7389): at org.apache.harmony.luni.platform.OSNetworkSystem.read(Native Method)11-04 11:09:35.889: E/DownThread(7389): at dalvik.system.BlockGuard$WrappedNetworkSystem.read(BlockGuard.java:273)11-04 11:09:35.889: E/DownThread(7389): at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:458)11-04 11:09:35.889: E/DownThread(7389): at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:85)11-04 11:09:35.889: E/DownThread(7389): at java.io.BufferedInputStream.read(BufferedInputStream.java:319)11-04 11:09:35.889: E/DownThread(7389): at org.apache.harmony.luni.internal.net.www.protocol.http.FixedLengthInputStream.read(FixedLengthInputStream.java:44)11-04 11:09:35.889: E/DownThread(7389): at java.io.BufferedInputStream.read(BufferedInputStream.java:319)11-04 11:09:35.889: E/DownThread(7389): at java.io.FilterInputStream.read(FilterInputStream.java:133)11-04 11:09:35.889: E/DownThread(7389): at com.tvie.ivideo.download.logic.DownThread.run(DownThread.java:65)

出现异常的代码是InputStream的read方法。

while ((len = is.read(buffer)) != -1 && running) {

read方法的声明表现会抛出IOException。

int java.io.InputStream.read(byte[] buffer) throws IOException