Android AsyncTask经过时间计算

时间:2013-10-06 23:03:21

标签: java android date android-asynctask

我正在尝试计算执行AsyncTask所经过的时间,但是没有记录onPostExecute方法,我做错了什么?

以下是我的代码的一部分:

@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");

3 个答案:

答案 0 :(得分:2)

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
     ...
     ...
}

答案 1 :(得分:1)

  1. 检查LogCat级别,位于Debug
  2. 确保在AsyncTask正在运行时取消onPostExecute,否则Service将无法运行。
  3. 此外,如果在Looper中运行,如果AsyncTask未运行,{{1}}可能会出现问题。
  4. 尝试将“TEMPODEREQUISIÇÃO”更改为“TEMPO DE REQUISICAO”,因为LogCat可能不支持字符编码。

答案 2 :(得分:-1)

我解决问题只是去项目 - >干净,现在它正在运作。