2012-03-07 8 views
0

下記のAsyncktaskクラスでpublishProgress()呼び出しのログを参照しようとしています。実際に進行中に何かを計算しているかどうかを確認する。それは私が更新しない進行ダイアログがあります。アンドロイドでメソッドをログに記録するには?

public String strAttachedFile = ""; 
public float nTotalSize; 
public float nUploadSize; 
public void Send(){ 

     new Loadvid().execute(); // our call for asynctask 
    } 

public class Loadvid extends AsyncTask <String,Integer,String>{ 

      protected void onPreExecute(){ 
      m_vwProgress.setMax((int)nTotalSize); 
      m_vwProgress.setMessage("Uploading, Please wait..."); 
      m_vwProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
       m_vwProgress.show(); 
      } 
     } 

protected String doInBackground(String... params) { 


      boolean m_bSuccess = true; 
      try 
      { 

       MultipartEntity me = new MultipartEntity(); 

       File pFp = new File(strAttachedFile); 
       me.addPart("videoFile", new FileBody(pFp, "video/3gpp")); 
       httppost.setEntity(me); 
       // get the total size of the file 
       nTotalSize = pFp.length(); 

       HttpResponse responsePOST = client.execute(httppost); 
       HttpEntity resEntity = responsePOST.getEntity(); 

       InputStream inputstream = resEntity.getContent(); 
       StringBuilder stringbuilder = new StringBuilder(); 
       byte data [] = new byte[512]; 

       while ((len = inputstream.read(data))>0) 
       { 
        StringBuilder result= stringbuilder.append(new String(data, 0, len)); 
        String s = String.valueOf(result); 
        nUploadSize += len; 
        publishProgress((float)(nTotalSize/nUploadSize)); 
         String myString1 = Float.toString((int)nUploadSize); 
        String myString2 = Float.toString((int) nTotalSize); 

        Log.i("Upload SIZEEEEEEEE", myString1); 
        Log.i("Total SIZEEEEEEEE", myString2); 

       } 
       inputstream.close(); 

      }catch (Exception e) { 
       e.printStackTrace(); 
       m_bSuccess = false; 
      } 

      if(m_bSuccess){ 
       return "success";//Success 

      } 

      return null;//failed 
     } 

protected void onProgressUpdate(Integer... values) { 

      if(m_vwProgress !=null){ 

       m_vwProgress.setProgress(values[0]); 
       } 
     } 


     protected void onPostExecute(String result){ 

      super.onPostExecute(result); 

      if(result==null){ 
       // failed 
       if(m_vwProgress !=null) 
        m_vwProgress.dismiss(); 

       return; 
      } 
      else 
      { 
       //success 
       if(m_vwProgress !=null) 
        m_vwProgress.dismiss(); 
      } 
     } 
+0

間の変数の型を一致させよう: 'ログを呼び出します。 (タグ、メッセージ); '。メッセージは 'LogCat'ウィンドウに表示されます。もしあなたがそのメソッド呼び出しに到達していないか、 'message'パラメータが空であるかのいずれかです。 – Jave

+0

これを追加すると@Jave:Log.i( "Show progresssss"、 "publishProgress()"); エラーが発生し、実行されません。それで私はpublishProgress()をどのように表示するかを理解しようとしています。 Thanskあなたの答えのために – user875139

答えて

0

あなたがやっているのと同じようにpublishProgress & onProgressUpdateパラメータ

protected void onProgressUpdate(float... values) 

または

publishProgress((Integer)(nTotalSize/nUploadSize)*100); 
+0

これは、除数と被除数の1つが浮動小数点数であることを前提としています。両方が整数の場合、これは引き続き0を計算します。浮動小数点数は、数値の1つにする必要があります。 – Nick

+0

名前からはファイルサイズなので、1より大きいので、ゼロとして計算されません。 –

+0

私がしようとしているのは、ビデオファイルをアップロードすることです。通常、100000バイトのnTotalsize数のログについては、アップロードサイズは通常120です。これは1秒のビデオをアップロードしようとしています。私はまだ進歩を見せていない。ところで、私はandroid devにかなり新しいです。ありがとう – user875139

関連する問題