2011-09-06 4 views
2

私はAndroid 3.0と3.1で作業しています。 私はアプリケーションでAndroidHttpClientクラスを使用していますが、実行するにはexecute(HttpUriRequest)を使用します。AndroidHttpClientからの進行通知

私はデータを送信している間に更新したいUIのプログレスバーを持っています。 AndroidHttpClientからデータ送信の進捗状況に関する通知を受け取る方法はありますか(バッファ全体をワンショットで送信しないと思います)。追跡するために、

私はあなたがAsyncTaskの例が必要だと思うのおかげ

+0

これには 'AsyncTask'を使用できます。このドキュメントを参照してください:http://developer.android.com/reference/android/os/AsyncTask.html –

+0

可能な複製:http://stackoverflow.com/questions/ 254719/file-upload-with-progress-with-progress-bar –

答えて

1

サーバーに送信されるデータの進行状況。送信される基礎となるHTTPエンティティをラップする必要があります。 HttpEntityWrapperをサブクラス化してwriteTo()をオーバーライドする場合は、サーバに書き込まれるストリームであるFilterOutputStreamOutputStreamをラップすることができます。

+0

私はOutputStreamクラスをラップし、writeTo()をオーバーライドしました。 データはいくつかの部分に分割され、forループで送信されます。 – Yaniv

+0

そして、writeTo()の各呼び出しが行われるたびに、進行状況を実装するリスナーにコールバックできますか? –

0

が、それは::

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(); 
+1

複数の質問で同じ回答を貼り付けると、重複している可能性が高いと思われる可能性が高いです。他の質問がこの質問にマージされた場合、まったく同じ回答が複製されます。私はあなたが悪い答えを提供したと言っているわけではありませんが、いくつかの場所に同じものを投稿するときは慎重にしてください。 –

+0

ok私は私の心の中でキッップします –

+0

私はあなたのアプローチを理解していますが、asynctaskの 'onProgressUpdate'メソッドについて言及する必要があります。私はあなたの答えでそれを見つけることができません。とにかくそれは良いアプローチです。 – katzenhut