Androidでプログレスダイアログを出すときに、AsyncTaskを使用すると、とても簡単なのですが、ひとつ大きな落とし穴があります。 それは、ダイアログ表示中に実機の縦横を切り替えるとダイアログが消えてしまうのと、AsyncTaskの処理が終了した時点でIllegalArgumentExceptionが発生することです。 前者は、縦横切り替えすると画面の再構築が行われるため、それまで表示されていたダイアログが破棄されてしまうからです。 なので、画面が再構築されたときにAsyncTaskが処理中ならば、再度ダイアログを表示しなおしてやればよいです。 後者は、AsyncTask.onPostExecuteメソッドでProgressDialog.dismissメソッドを呼び出すときには、ダイアログを表示した親Activityが存在していないためです。 こちらも、ダイアログを再表示すればよいの