在Android中下载大文件 [英] Download large file in Android

查看:142
本文介绍了在Android中下载大文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个应用程序下载一个非常大的文件(超过50MB)。不幸的是,我收到了下载失败的报告。



下面是一个这样的故障的logcat,以$ code> java.net.SocketException结尾:操作超时。在它之间,它有来自 WifiMonitor 的各种消息。我不知道如何解释这些信息。



有没有什么特别的,我应该下载一个大文件,还是这只是一个连接问题?

  09-02 16:41:19.925 I / ActivityManager(646):显示的活动com.example / com.example.sp.MainActivity:1110 ms(共3786 ms)
09-02 16:41:21.935 W / InputManagerService(646):窗口已经聚焦,忽略焦点增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@45133d08
09-02 16:41 :23.495 I / global(7345):BufferedInputStream构造函数中使用的默认缓冲区大小。如果需要8k缓冲区,最好是明确的。
09-02 16:41:23.895 D / dalvikvm(7345):GC在160ms内释放5348个对象/ 307096个字节
09-02 16:41:25.885 D / dalvikvm(7345):GC释放15282对象/ 124ms中的713544字节
09-02 16:41:27.405 D / dalvikvm(7345):GC在131ms中释放11775个对象/ 524576个字节
09-02 16:41:28.982 I / wpa_supplicant 7284):CTRL-EVENT-DISCONNECTED - 断开事件 - 删除键
09-02 16:41:28.985 V / Wifi监视器(646):事件[CTRL-EVENT-DISCONNECTED - 断开事件 - 删除键]
09-02 16:41:28.985 V / WifiStateTracker(646):新网络状态为DISCONNECTED
09-02 16:41:28.985 I / wpa_supplicant(7284):CTRL-EVENT-STATE-CHANGE id = 0状态= 0
09-02 16:41:28.985 V / Wifi监视器(646):事件[CTRL-EVENT-STATE-CHANGE id = 0 state = 0]
09-02 16:41:28.995 V / WifiStateTracker(646):更改请求者状态:COMPLETED ==> DISCONNECTED
09-02 16:41:29.086 I / wpa_supplicant(7284):CTRL-EVENT-STATE-CHANGE id = 0 state = 2
09-02 16:41:29.086 V / WifiMonitor(646 ):事件[CTRL-EVENT-STATE-CHANGE id = 0 state = 2]
09-02 16:41:29.086 V / WifiStateTracker(646):更改请求者状态:DISCONNECTED ==> SCANNING
09-02 16:41:29.086 W / wpa_supplicant(7284):无法启动AP扫描。
09-02 16:41:29.095 I / wpa_supplicant(7284):CTRL-EVENT-SCAN-RESULTS Ready
09-02 16:41:29.095 I / wpa_supplicant(7284):试图关联00:1c:f0:6e:2a:56(SSID ='WLANR'freq = 2412 MHz)
09-02 16:41:29.095 E / wpa_supplicant(7284):Set_key:错误键
09 -02 16:41:29.095 E / wpa_supplicant(7284):Set_key:Wrong Key
09-02 16:41:29.095 E / wpa_supplicant(7284):Set_key:Wrong Key
09-02 16: 41:29.095 E / wpa_supplicant(7284):Set_key:Wrong Key
09-02 16:41:29.095 E / wpa_supplicant(7284):Set_key:Wrong Key
09-02 16:41:29.095 I / wpa_supplicant(7284):CTRL-EVENT-STATE-CHANGE id = 0 state = 3
09-02 16:41:29.105 V / Wifi监视器(646):事件[尝试与00:1c:f0: 6e:2a:56(SSID ='WLANR'freq = 2412 MHz)]
09-02 16:41:29.105 V / Wifi监视器(646):事件[CTRL-EVENT-STATE-CHANGE id = 0 state = 3]
09-02 16:41:29.125 V / WifiStateTracker(646):更改请求者状态:SCANNING ==> ASSOCIATING
09-02 16:41:29.825 I / wpa_supplicant(7284):CTRL-EVENT-STATE-CHANGE id = 0 state = 4
09-02 16:41:29.825 V / Wifi监视器(646 ):事件[CTRL-EVENT-STATE-CHANGE id = 0 state = 4]
09-02 16:41:29.825 V / WifiStateTracker(646):更改请求者状态:ASSOCIATING ==> ASSOCIATED
09-02 16:41:29.825 I / wpa_supplicant(7284):与00:1c:f0:6e:2a:56
09-02 16:41:29.825 I / wpa_supplicant(7284 ):CTRL-EVENT-STATE-CHANGE id = 0 state = 7
09-02 16:41:29.825 I / wpa_supplicant(7284):CTRL-EVENT-CONNECTED - 连接到00:1c:f0:6e: 2a:56 completed(reauth)[id = 0 id_str =]
09-02 16:41:29.825 I / wpa_supplicant(7284):wpa_supplicant - IPC_EVENT_AUTH_SUCC
09-02 16:41:29.825 V / WifiMonitor(646):事件[与00:1c:f0:6e:2a:56相关]
09-02 16:41:29.825 V / Wifi监视器(646):事件[CTRL-EVENT-STATE-CHANGE id = 0 state = 7]
09-02 16:41:29.845 V / WifiStateTracker(646):更改请求者状态:ASSOCIATED ==> COMPLETED
09-02 16:41:29.855 V / Wifi监视器(646):事件[CTRL-EVENT-CONNECTED - 连接到00:1c:f0:6e:2a:56已完成(reauth)[id = 0 id_str =]]
09-02 16:41:29.855 V / WifiStateTracker(646):新网络状态为CONNECTED
09-02 16:41:29.865 D / WifiStateTracker(646):解除配置接口并停止DHCP
09-02 16:41:29.865 E / wpa_supplicant(7284):prepare_filter_struct:type = 5
09-02 16:41:29.945 E / FileUtils(7345):下载失败
09-02 16:41:29.945 E / FileUtils(7345):java.net.SocketException:操作超时


解决方案

手机在进入睡眠模式时与Wi-Fi断开连接,我猜是这里的原因?看看 WifiManager的WifiLock,看看如何防止它。


I have an app that downloads a very large file (over 50MB). Unfortunately I'm getting reports that the download fails.

Below is the logcat of one such failure, which ends with a java.net.SocketException: The operation timed out. In-between it has various messages from the WifiMonitor. I don't know how to interpret these messages.

Is there something special that I should do to download a large file, or is this simply a connection problem?

09-02 16:41:19.925 I/ActivityManager(  646): Displayed activity com.example/com.example.sp.MainActivity: 1110 ms (total 3786 ms)
09-02 16:41:21.935 W/InputManagerService(  646): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@45133d08
09-02 16:41:23.495 I/global  ( 7345): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
09-02 16:41:23.895 D/dalvikvm( 7345): GC freed 5348 objects / 307096 bytes in 160ms
09-02 16:41:25.885 D/dalvikvm( 7345): GC freed 15282 objects / 713544 bytes in 124ms
09-02 16:41:27.405 D/dalvikvm( 7345): GC freed 11775 objects / 524576 bytes in 131ms
09-02 16:41:28.982 I/wpa_supplicant( 7284): CTRL-EVENT-DISCONNECTED - Disconnect event - remove keys
09-02 16:41:28.985 V/WifiMonitor(  646): Event [CTRL-EVENT-DISCONNECTED - Disconnect event - remove keys]
09-02 16:41:28.985 V/WifiStateTracker(  646): New network state is DISCONNECTED
09-02 16:41:28.985 I/wpa_supplicant( 7284): CTRL-EVENT-STATE-CHANGE id=0 state=0
09-02 16:41:28.985 V/WifiMonitor(  646): Event [CTRL-EVENT-STATE-CHANGE id=0 state=0]
09-02 16:41:28.995 V/WifiStateTracker(  646): Changing supplicant state: COMPLETED ==>  DISCONNECTED
09-02 16:41:29.086 I/wpa_supplicant( 7284): CTRL-EVENT-STATE-CHANGE id=0 state=2
09-02 16:41:29.086 V/WifiMonitor(  646): Event [CTRL-EVENT-STATE-CHANGE id=0 state=2]
09-02 16:41:29.086 V/WifiStateTracker(  646): Changing supplicant state: DISCONNECTED ==>  SCANNING
09-02 16:41:29.086 W/wpa_supplicant( 7284): Failed to initiate AP scan.
09-02 16:41:29.095 I/wpa_supplicant( 7284): CTRL-EVENT-SCAN-RESULTS  Ready
09-02 16:41:29.095 I/wpa_supplicant( 7284): Trying to associate with 00:1c:f0:6e:2a:56 (SSID='WLANR' freq=2412 MHz)
09-02 16:41:29.095 E/wpa_supplicant( 7284): Set_key: Wrong Key
09-02 16:41:29.095 E/wpa_supplicant( 7284): Set_key: Wrong Key
09-02 16:41:29.095 E/wpa_supplicant( 7284): Set_key: Wrong Key
09-02 16:41:29.095 E/wpa_supplicant( 7284): Set_key: Wrong Key
09-02 16:41:29.095 E/wpa_supplicant( 7284): Set_key: Wrong Key
09-02 16:41:29.095 I/wpa_supplicant( 7284): CTRL-EVENT-STATE-CHANGE id=0 state=3
09-02 16:41:29.105 V/WifiMonitor(  646): Event [Trying to associate with 00:1c:f0:6e:2a:56 (SSID='WLANR' freq=2412 MHz)]
09-02 16:41:29.105 V/WifiMonitor(  646): Event [CTRL-EVENT-STATE-CHANGE id=0 state=3]
09-02 16:41:29.125 V/WifiStateTracker(  646): Changing supplicant state: SCANNING ==>  ASSOCIATING
09-02 16:41:29.825 I/wpa_supplicant( 7284): CTRL-EVENT-STATE-CHANGE id=0 state=4
09-02 16:41:29.825 V/WifiMonitor(  646): Event [CTRL-EVENT-STATE-CHANGE id=0 state=4]
09-02 16:41:29.825 V/WifiStateTracker(  646): Changing supplicant state: ASSOCIATING ==>  ASSOCIATED
09-02 16:41:29.825 I/wpa_supplicant( 7284): Associated with 00:1c:f0:6e:2a:56
09-02 16:41:29.825 I/wpa_supplicant( 7284): CTRL-EVENT-STATE-CHANGE id=0 state=7
09-02 16:41:29.825 I/wpa_supplicant( 7284): CTRL-EVENT-CONNECTED - Connection to 00:1c:f0:6e:2a:56 completed (reauth) [id=0 id_str=]
09-02 16:41:29.825 I/wpa_supplicant( 7284): wpa_supplicant - IPC_EVENT_AUTH_SUCC
09-02 16:41:29.825 V/WifiMonitor(  646): Event [Associated with 00:1c:f0:6e:2a:56]
09-02 16:41:29.825 V/WifiMonitor(  646): Event [CTRL-EVENT-STATE-CHANGE id=0 state=7]
09-02 16:41:29.845 V/WifiStateTracker(  646): Changing supplicant state: ASSOCIATED ==>  COMPLETED
09-02 16:41:29.855 V/WifiMonitor(  646): Event [CTRL-EVENT-CONNECTED - Connection to 00:1c:f0:6e:2a:56 completed (reauth) [id=0 id_str=]]
09-02 16:41:29.855 V/WifiStateTracker(  646): New network state is CONNECTED
09-02 16:41:29.865 D/WifiStateTracker(  646): Deconfiguring interface and stopping DHCP
09-02 16:41:29.865 E/wpa_supplicant( 7284): prepare_filter_struct: type=5
09-02 16:41:29.945 E/FileUtils( 7345): Download failed
09-02 16:41:29.945 E/FileUtils( 7345): java.net.SocketException: The operation timed out

解决方案

The phone disconnects from Wi-Fi when going into sleep mode, which I guess was the cause here? Take a look at WifiManager's WifiLock to see how you can prevent it.

这篇关于在Android中下载大文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆