我正在尝试为从互联网上下载的json数组获得一个水平的progressbardialog。
这是我目前的代码
protected JSONArray doInBackground(Date... arg0) {
try {
BufferedReader in = null;
String result = null;
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setSoTimeout(client.getParams(), 30000);
HttpConnectionParams.setConnectionTimeout(client.getParams(),
30000);
String getter = arg0[0].getDate();
URI website = new URI("http://10.0.2.2/bmorg/getEvent?day=" + getter);
HttpGet request = new HttpGet();
request.setURI(website);
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String l = "";
String nl = System.getProperty("line.seperator");
while ((l = in.readLine()) != null) {
sb.append(l + nl);
}
in.close();
result = sb.toString();
return new JSONArray(result);
} catch (Exception e) {
_worked = false;
e.printStackTrace();
}
return null;
}
这很好用,但我想要的是下载状态。我不知道如何从我的Http请求和下载的字节中获取大小以将其放入onChange方法的进度条。
答案 0 :(得分:0)
在此处更新您的进度:
while ((l = in.readLine()) != null) {
sb.append(l + nl);
}
您可以使用AsyncTask.publishProgress
和AsyncTask.onProgressUpdate
方法。
答案 1 :(得分:0)