我正在使用 Android 3.0 和 3.1。我在我的应用程序中使用了 AndroidHttpClient 类,并在执行时使用了 execute(HttpUriRequest)。
我在 UI 中有一个进度条,我想在发送数据时对其进行更新。有什么方法可以从 AndroidHttpClient 获取有关数据发送进度的通知(我猜它不会一次性发送整个缓冲区)?
谢谢
我正在使用 Android 3.0 和 3.1。我在我的应用程序中使用了 AndroidHttpClient 类,并在执行时使用了 execute(HttpUriRequest)。
我在 UI 中有一个进度条,我想在发送数据时对其进行更新。有什么方法可以从 AndroidHttpClient 获取有关数据发送进度的通知(我猜它不会一次性发送整个缓冲区)?
谢谢
要在数据发送到服务器时跟踪数据的进度,您必须包装正在发送的底层 HTTP 实体。如果您将HttpEntityWrapper子类化并覆盖,则可以使用FilterOutputStreamwriteTo()
包装OutputStream ,这是写入服务器的流。
我认为您需要 AsyncTask 示例,可能会对您有所帮助::
private class xyz extends AsyncTask<Void, Void, Void> {
private final ProgressDialog dialog = new ProgressDialog(tranning.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage("Please Wait...");
this.dialog.show();
// put your code which preload with processDialog
}
@Override
protected Void doInBackground(Void... arg0) {
// put you code here
return null;
}
@Override
protected void onPostExecute(final Void unused) {
//if (this.dialog.isShowing()) {
// this.dialog.dismiss();
//}
}
}
并在你的主课中使用它::
new xyz().execute();