我正在尝试计算执行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");
答案 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)
Debug
。AsyncTask
正在运行时取消onPostExecute
,否则Service
将无法运行。Looper
中运行,如果AsyncTask
未运行,{{1}}可能会出现问题。答案 2 :(得分:-1)
我解决问题只是去项目 - >干净,现在它正在运作。