ユーザ用ツール

サイト用ツール


fragmentメモ

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
fragmentメモ [2015/07/06 13:25]
sou
fragmentメモ [2015/07/29 09:51] (現在)
sou
ライン 22: ライン 22:
 === Fragment切り替え時のIllegalStateException === === Fragment切り替え時のIllegalStateException ===
  
-下記の操作NGの箇所でFragmentを操作しようとすると発生します。\\+下記の操作NGの箇所でFragmentを操作しようとすると発生します。\\ 
 [Fragmentライフサイクル]\\ [Fragmentライフサイクル]\\
 ...\\ ...\\
ライン 28: ライン 29:
 ↓ 操作NG\\ ↓ 操作NG\\
 ↓\\ ↓\\
-onViewCreated(Bundle ​savedInstance) 状態復元\\+onViewCreated(Bundle ​savedInstanceState) 状態復元\\
 onResume()\\ onResume()\\
 ↓\\ ↓\\
ライン 40: ライン 41:
 ↓ 操作NG\\ ↓ 操作NG\\
 ↓\\ ↓\\
-....\\+...\\
  
 「操作OK」の箇所で操作すれば大丈夫なように見えますが、非同期(サブスレッド)でFragmentTransacitonを取り扱ってしまったり、 「操作OK」の箇所で操作すれば大丈夫なように見えますが、非同期(サブスレッド)でFragmentTransacitonを取り扱ってしまったり、
-そもそもFragmentTransaction#​commit()が非同期であるため発生します。+そもそもFragmentTransaction#​commit()が非同期であるため発生します。
  
  
ライン 55: ライン 56:
 http://​stackoverflow.com/​questions/​8040280/​how-to-handle-handler-messages-when-activity-fragment-is-paused http://​stackoverflow.com/​questions/​8040280/​how-to-handle-handler-messages-when-activity-fragment-is-paused
 \\ \\
 +
 +=== FragmentTransaction#​commit()はメインスレッドのHandlerにメッセージキューが積まれる ===
 +FragmentManager#​beginTransaction→(FragmentManagerImpl#​beginTransaction)\\
 +(Fragmentをいろいろ操作)\\
 +FragmentTransaction#​commit→(android.app.BackStackRecord#​commit)\\
 +(FragmentManagerImpl#​enqueueAction)→(Activity#​mHandlerに処理委譲)\\
 +
 +
 === Fragment in Fragment === === Fragment in Fragment ===
 FragmentでFragmentを管理するときはgetChildFragmentManager()\\ FragmentでFragmentを管理するときはgetChildFragmentManager()\\
fragmentメモ.1436156742.txt.gz · 最終更新: 2015/07/06 13:25 by sou