私はこのようなAsyncTaskを持っています:
private class RetrieveDataAsyncTask extends AsyncTask<Void, Void, Boolean> {
ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(getSherlockActivity(), "In progress", "Loading");
}
@Override
protected Boolean doInBackground(Void... params) {
try {
currentScreen.retrieveData();
return true;
} catch (IOException ex) {
return false;
}
}
@Override
protected void onPostExecute(Boolean result) {
progressDialog.dismiss();
if (result) {
currentScreen.retrieveDataFinished();
} else {
showExceptionOccurred();
}
}
AsyncTaskにかかる時間が500ミリ秒未満の場合、ProgressDialogを表示したくありません。ちらつきが発生するだけで、イライラする可能性があります。私が欲しいのは、500ミリ秒待って、AsyncTaskがまだビジーであるかどうかを確認し、ビジーである場合は、ProgressDialogを表示することです。
どうすればそれを達成できますか?