Fragmentのライフサイクルの確認 その2 onStart〜onResume

前回の続きです。
onStart〜onResumeを見てみます。

調査環境

Android SDK 3.2(APIレベル13)

Activity#onStart()後に呼ばれるFragmentメソッド

onStartのログ
onStart
java.lang.Exception
    at com.mydroid.fragmenttest.fragment.FragmentSample.onStart(FragmentSample.java:43)
    at android.app.Fragment.performStart(Fragment.java:1469)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:810)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:977)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:960)
    at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:1679)
    at android.app.Activity.performStart(Activity.java:4413)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1788)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
    at android.app.ActivityThread.access$500(ActivityThread.java:122)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:132)
    at android.app.ActivityThread.main(ActivityThread.java:4123)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:491)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    at dalvik.system.NativeStart.main(Native Method)
わかったこと

ログから判明したこと。

  • Activity#onStart()処理終了後、Activity#performStart() → FragmentManagerImpl#dispatchStart()からコールされる

Activity#onResume()後に呼ばれるFragmentメソッド

onResumeのログ
onResume
java.lang.Exception
    at com.mydroid.fragmenttest.fragment.FragmentSample.onResume(FragmentSample.java:49)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:821)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:977)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:960)
    at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1684)
    at android.app.Activity.performResume(Activity.java:4478)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2278)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2316)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1836)
    at android.app.ActivityThread.access$500(ActivityThread.java:122)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:132)
    at android.app.ActivityThread.main(ActivityThread.java:4123)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:491)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    at dalvik.system.NativeStart.main(Native Method)
わかったこと

ログから判明したこと。

  • ActivityThread#handleResumeActivity()処理内に移行
  • Activity#onResume()処理終了後、Activity#performResume() → FragmentManagerImpl#dispatchResume()からコールされる