我有一个AsynkTask:
new AsyncTask<Void,Void,Void>() { private ProgressDialog mProgressDialog; @Override protected void onPreExecute() { Log.i(TAG,"Pre execute: " + System.currentTimeMillis()); super.onPreExecute(); mProgressDialog = ProgressDialog.show(NewWeatherActivity.this,null,getResources().getString(R.string.weather_is_updating)); mProgressDialog.setCancelable(false); Log.i(TAG,"Pre executed: " + System.currentTimeMillis()); } @Override protected Void doInBackground(Void... voids) { Log.i(TAG,"Do in background: " + System.currentTimeMillis()); // Some actions Log.i(TAG,"Done in background: " + System.currentTimeMillis()); return null; } @Override protected void onPostExecute(Void aVoid) { Log.i(TAG,"Post execute: " + System.currentTimeMillis()); super.onPostExecute(aVoid); mProgressDialog.dismiss(); Log.i(TAG,"Post executed: " + System.currentTimeMillis()); } }.execute();
日志:
I/TVLauncher/NewWeatherActivity(21691): Pre execute: 1354798705667
I/TVLauncher/NewWeatherActivity(21691): Pre executed: 1354798705713
I/TVLauncher/NewWeatherActivity(21691): Do in background:
1354798724063 I/TVLauncher/NewWeatherActivity(21691): Done in
background: 1354798724083 I/TVLauncher/NewWeatherActivity(21691): Post
execute: 1354798724083 I/TVLauncher/NewWeatherActivity(21691): Post
executed: 1354798725046
因此,onPreExecute和doInBackground之间的延迟大约是19秒.为什么?