構成の変更中に AsyncTask を保持するために Android で保持フラグメントを使用しているときに、これが最善の方法だと思いますが、UI スレッドのメッセージ キューの呼び出し順序についていくつかの疑問が頭に浮かびます。
例: 次のシナリオを想像してください。
- 構成変更が発生し、ユーザーがデバイスを回転させます。AsyncTask が実行されています。
- フラグメント
onDetach()
と呼ばれる - AsyncTask
doInBackground()
メソッドの終了 - AsyncTask
onPostExecute()
が呼び出されます - フラグメント
onAttach()
と呼ばれる
したがって、UI スレッド メッセージ キューは次のようになります。
キュートップ -> onDetach() | onPostExecute() | onAttach()
私が知る限り、への呼び出しonPostExecute()
は構成の変更が完了するまで待機しますが、それはどのように機能しますか? アクティビティ、フラグメントのライフサイクルからの呼び出しは連続して実行されていますか?