Android view-onAttachedToWindow и onDetachedFromWindow-когда они вызываются в жизненном цикле активности?

Я считаю, что onAttachedToWindow вызывается, когда onCreate setContentView(R.layout.myLayout.xml) называется. итак, могу ли я предположить, что в жизненном цикле действия onDetachedFromWindow вызывается при уничтожении действия? Мой вопрос в том, как связать эти два крючка обратного вызова с жизненным циклом действий?

могу ли я сказать, что onAttachedToWindow привязан к onCreate, а onDetachedFromWindow привязан к onDestroy?

2 ответов


технически onAttachedToWindow вызывается после onResume(и это происходит только один раз в perlifecycle). ActivityThread.handleResumeActivity вызов будет добавить DecorView в течение WindowManger, который, в свою очередь, называют WindowManagerGlobal.addView() который, чем пересечь все виды и вызвать onAttachedToWindow на каждый вид.

onDetachedFromWindow связана с onDestroy


я считаю, что это возможно onAttachedToWindow будет вызываться, когда setContentView называется.

при использовании разделенного экрана на Android N, и значение configChanges деятельности в AndroidManifest.xml неисправности:

 "keyboardHidden|orientation|screenSize"

onAttachedToWindow будет вызван в setContentView, потому что переменная "mAttachInfo" в decorview окна не имеет значения null, когда вы вызываете setContentView добавить rootView to decorView, dispatchAttachedToWindow называется addViewInner().

наконец-то после активности onResume(), onAttachedToWindow() не вызывается.