【发布时间】:2013-03-11 21:57:55
【问题描述】:
我有一项服务可以在AysncTask 的doInBackground() 方法中下载一个大文件:
data = new byte[8192];
output = new FileOutputStream(fileLoc);
connection = (HttpURLConnection) new URL(currUrl).openConnection();
input = new BufferedInputStream(connection.getInputStream());
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
在执行此操作时(正在下载文件),滚动浏览 ListView 可能会有点不稳定到非常不稳定。
我尝试为下载服务创建一个新进程,更改 doInBackground() 线程的优先级,在 while 循环期间暂停任意毫秒数,并针对内存使用进行了优化。
我被卡住了,不知道如何在下载过程中让 UI 不卡顿。下载未进行时,UI 会正常响应...
【问题讨论】:
-
我有一个应用程序,新安装后会在后台下载 50-100MB,包括 UI 更新和所有内容...... UI 中没有卡顿。但是,在调试时,UI 通常有点抽搐。在您的设备与开发机器断开连接的情况下尝试您的代码和 UI 响应能力。
标签: java android multithreading