AsyncTask があります。
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): 実行前: 1354798705667 I/TVLauncher/NewWeatherActivity(21691): 実行前: 1354798705713 I/TVLauncher/NewWeatherActivity(21691): バックグラウンドで実行: 1354798724063 I/TVLauncher/NewWeatherActivity) Done91:216バックグラウンドで: 1354798724083 I/TVLauncher/NewWeatherActivity(21691): ポスト実行: 1354798724083 I/TVLauncher/NewWeatherActivity(21691): ポスト実行: 1354798725046
したがって、onPreExecute と doInBackground の間のレイテンシは約 19 秒です。なんで?