2013-10-06 109 views
0

我想計算執行AsyncTask ellapsed時間,但沒有記錄在onPostExecute方法,我做錯了什麼?Android AsycTask經過時間計算

這裏是我的代碼的一部分:

@Override 
    protected void onPreExecute() 
    { 
     this.dialog.setMessage(mensagem); 
     this.dialog.show(); 
     Date date = new Date(); 
     startTime = date.getTime(); 
    } 

@Override 
    protected void onPostExecute(String result) 
    { 

     if(this.dialog.isShowing() && this.dialog != null) 
      this.dialog.dismiss(); 

     Date date = new Date(); 
     endTime = date.getTime(); 

     long diffTime = endTime - startTime; 
//here nothing is logged in LogCat 
     Log.d("TEMPO DE REQUISIÇÃO", String.valueOf(diffTime) + " milisegundos"); 
+0

您是否將日誌輸出級別設置爲調試? –

+0

我已經在整個應用程序中使用了這個日誌,沒有任何問題,只是在這個特定的情況下。 –

回答

0

我解決問題只是將項目 - >乾淨,現在,它正在發揮作用。

1
  1. 檢查logcat的水平,是Debug
  2. 確保在運行時不取消AsyncTask,否則onPostExecute將不會運行。
  3. 此外,如果這是在Service運行,那麼可能會出現問題,如果AsyncTask沒有運行,則不會設置。
  4. 嘗試將「TEMPO DEREQUISIÇÃO」更改爲「TEMPO DE REQUISICAO」,因爲它可能是LogCat不支持字符編碼。
+0

1.我已經在整個應用程序中使用了日誌,沒有問題,只是在這個特定的情況下。 –

+0

2. AsyncTask沒有被取消,在樣例執行後我有更多的代碼。 –

+0

@DaniloSilva嘗試編號4 –

0
long startTime, endTime; //declare this globally 

@Override 
protected void onPreExecute() 
{ 
    startTime = System.currentTimeMillis(); 
    ... 
    ... 
} 

@Override 
protected void onPostExecute(String result) 
{ 
    endTime= System.currentTimeMillis(); 
    System.out.println(endTime-startTime); //Milli Secs 
    System.out.println((endTime-startTime)/1000); //Secs 
    ... 
    ... 
}