HttpGet JSONArray android进度条

时间:2012-09-08 17:41:42

标签: java php android json http


我正在尝试为从互联网上下载的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方法的进度条。

2 个答案:

答案 0 :(得分:0)

在此处更新您的进度:

while ((l = in.readLine()) != null) {
      sb.append(l + nl);
    }

您可以使用AsyncTask.publishProgressAsyncTask.onProgressUpdate方法。

答案 1 :(得分:0)