2 qq 32360535 qq_32360535 于 2016.01.23 17:09 提问

Android关于下载进度条更新问题

@Override
protected Bitmap doInBackground(String... params) {
Bitmap bitmap=null;
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
InputStream inputStream=null;
try {
HttpClient httpClient=new DefaultHttpClient();
HttpGet httpGet=new HttpGet(params[0]);
HttpResponse httpResponse=httpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode()==200) {
inputStream=httpResponse.getEntity().getContent();
long file_length=httpResponse.getEntity().getContentLength();
int len=0;
byte[] data=new byte[1024];
int duqulength=0;

while((len=inputStream.read(data)) != -1){
duqulength +=len;
int values=(int) ((duqulength/file_length)*100);
publishProgress(values);
System.out.println(values);
outputStream.write(data, 0, len);
}
byte[] date1=outputStream.toByteArray();
bitmap=BitmapFactory.decodeByteArray(date1, 0, date1.length);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
if (inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return bitmap;
}

}

这个是代码 为什么进度条不更新啊 就最后一下子变100

1个回答

91program
91program   Ds   Rxr 2016.01.23 17:20

用 HttpClient 下载,下载过程是不是应该放在线程中,否则主进程没有时间去刷新 UI 的。

91program
91program 回复xiaojiangren: 下载的过程,最好是另开线程。
接近 2 年之前 回复
qq_32360535
qq_32360535 回复91program: inbackground那边得另开线程吗
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!