« 「相手に9割しゃべらせる質問術」を読んで | トップページ | onPause()とonStop()の経路 »

2011年10月12日 (水)

onResume()の経路

勉強会の資料を作るついでに、
ActivityのonResume()が呼ばれる場所を
調べてみた。

個人メモ程度だけど・・。

関係者はこれぐらいかな。
 android.app.Instrumentation
 android.app.Activity
 android.app.ActivityThread

ActivityThreadが管理してるイメージなのかな。
Instrumentationの役割がよくわからないが、
よく真ん中にいる。

ActivityをResumeするのは、
こんなケースになるのかな。
(必要そうなところだけ抜粋)

関数の後にインデントがあるのは、
内訳って感じで・・。
(ifの中身もインデント)


リジュームする場合1。
onStop後だと、onStartを呼ぶルートがある。

ActivityThread.handleResumeActivity()
 ActivityThread.performResumeActivity()
  if (pendingIntents)
   deliverNewIntents()
  if (pendingResults)
   deliverResults()
  activity.performResume()
   performRestart()
    if (mStopped)
     mInstrumentation.callActivityOnRestart()
      activity.onRestart()
     performStart()
   mInstrumentation.callActivityOnResume()
    activity.onResume()
   onPostResume()


リジュームする場合2。

Activity.performResume()
 Instrumentation.callActivityOnResume(this)
  activity.onResume()
 onPostResume()


起動する場合1。

ActivityThread.handleLaunchAcitivity()
 performLaunchActivity() →下で。
 handleResumeActivity()


起動する場合2(続き)。
onCreate→onStart→onResumeの流れが見える。

performLaunchActivity()
 mInstrumentation.callActivityOnCreate()
  activity.onCreate()
 activity.performStart()
  mInstrumentation.callActivityOnStart()
   activity.onStart()
 mInstrumentation.callActivityOnRestoreInstanceState()
  activity.performRestoreInstanceState()
   onRestoreInstanceState()
 mInstrumentation.callActivityOnPostCreate()
  activity.onPostCreate()


詳しく知りたい方は、
ソースでもがつがつと・・。
上の調査は、Gingerbreadのソースから。
(バージョンはどれだろう・・)

|

« 「相手に9割しゃべらせる質問術」を読んで | トップページ | onPause()とonStop()の経路 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/97274/42401303

この記事へのトラックバック一覧です: onResume()の経路:

« 「相手に9割しゃべらせる質問術」を読んで | トップページ | onPause()とonStop()の経路 »