Java HttpGet JSONArray android Progressbar
Java HttpGet JSONArray android Progressbar,java,php,android,json,http,Java,Php,Android,Json,Http,我正在尝试为从internet下载的json数组获取一个水平progressbardialog。 这是我目前的代码 protected JSONArray doInBackground(Date... arg0) { try { BufferedReader in = null; String result = null; HttpClient client = new DefaultHttpClient(); HttpConnectionParams.se
我正在尝试为从internet下载的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请求和下载的字节中获取大小,以便将其放入progressbar onChange方法。在此处更新您的进度:
while ((l = in.readLine()) != null) {
sb.append(l + nl);
}
您可以使用
AsyncTask.publishProgress
和AsyncTask.onProgressUpdate
方法进行更新。在此处更新进度:
while ((l = in.readLine()) != null) {
sb.append(l + nl);
}
您可以使用
AsyncTask.publishProgress
和AsyncTask.onProgressUpdate
方法。获取到值,然后在while
循环中。获取到值,然后在while
循环中。服务器可能不会给出内容长度,在这种情况下,您注定要使用不确定样式。服务器可能不会给出内容长度,在这种情况下,您注定要使用不确定样式。