AsyncTasksは、バックグラウンド処理を実行し、必要に応じて終了後のUIを更新することに使用されます。
AsyncTasksを使用し、コンフィギュレーションの変更を扱うことはよくあるバグとなることがあります。
Fragment は AsyncTask の実行中にその Activity から切り離され、その Activity にアクセスしようとする場合は、アプリケーションは次のようなコールスタックでクラッシュします。
java.lang.IllegalStateException: Fragment MyFragment not attached to Activity at android.support.v4.app.Fragment.getResources(Fragment.java:551) at android.support.v4.app.Fragment.getString(Fragment.java:573)
Fragment は、アプリケーションのリソースにアクセスするために Activity を必要としています。
クラッシュを防止するための一つの方法は、コンフィギュレーション変更を越えて AsyncTask を保持することです。
RetainedFragment を利用することで、AsyncTask 実行と、その処理のステータスをリスナーに通知することができます。
詳細については、FragmentRetainInstance.javaサンプルを参照するとよいです。
FragmentRetainInstance.java - platform/development - Git at Google
関連ワード: Android・AndroidStudio・Google・Gradle・今さら聞けない・評判・開発・Fragment MyFragment not attached to Activity・v4