要从FTP上面下载一个1KB-2G(姑且2G吧)的文件,要下载且耗时,肯定想到用AsyncTask或线程+Handler来下载。(两种方法我都试了)
结果是,下载100MB内的文件,很快就下载完了,UI操作也不卡。但是,当我下载1G的文件时,UI就“死”在那里了。while((c = in.read(bytes)) != -1)
{
out.write(bytes, 0, c);
localSize += c;
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("localSize>>>> "+localSize);
}
out.flush();
结果是,下载100MB内的文件,很快就下载完了,UI操作也不卡。但是,当我下载1G的文件时,UI就“死”在那里了。while((c = in.read(bytes)) != -1)
{
out.write(bytes, 0, c);
localSize += c;
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("localSize>>>> "+localSize);
}
out.flush();
解决方案 »
- 安卓系统编写shell脚本,sh文件能支持mv命令吗?
- Android应用程序意外终止
- android中出现inalizing a Cursor that has not been deactivated or closed.
- 急!急!急!关于android中控件的重写
- string where = FIELD_id +"= ?"什么意思啊?
- 为什么我开发的安卓软件 MIUI能打开正常 安卓系统就会闪退
- Android 开源库获取途径整理
- 一段socket传文件的代码,debug加断点再继续运行就正常,直接运行就出错
- Android Studio打包apk安装后闪退问题,求帮助!
- 如何实现:Android 柱状图或折线图不同数值范围(正负值)显示不同颜色
- android 后台service摄像拍照功能
- 关于android事件传递的一个问题。
byte[] bytes = new byte[2048];
while((c = in.read(bytes)) != -1)
{
out.write(bytes, 0, c);
localSize += c;
}
out.flush();修改成上面那样,还是一样的
byte[] bytes = new byte[2048];
while((c = in.read(bytes)) != -1)
{
out.write(bytes, 0, c);
localSize += c;
}
out.flush();修改成上面那样,还是一样的
额 表示无能为力了 没遇到android终端下载这么大文件的
byte[] bytes = new byte[2048];
while((c = in.read(bytes)) != -1)
{
out.write(bytes, 0, c);
localSize += c;
}
out.flush();修改成上面那样,还是一样的
额 表示无能为力了 没遇到android终端下载这么大文件的
android手机一样可以下载高清电影,只是国内环境...
个人推测应该是本人代码的问题,还在继续找原因...