在TabActivity中,只在第一次进入时走了onCreate()、onStart()、onResume()三个阶段,然后在退出该页面时走了onPause()、onStop()和onDestroy()两个阶段。其他时间无论其中的子Activity如何切换,都不会再进入TabActivity的生命周期。
而子Activity,再第一次创建的时候,都会走onCreate()、onStart()、onResume()三个阶段,期间在各子Activity中切换,经历了onPause()和onResume()两个阶段,然后在主TabActivity退出时经历onPause()、onStop()和onDestroy()三个阶段
详细见下图说明:

上图是一个包含三个标签的TabActivity,我们把主TabActivity命名为custom,三个子tab从左往右依次命名为Info、contact和record
当我们第一次进入该TabActivity时:

当我们从tab1切换到tab2的时候,即从info切换到contact时:

当从tab2切回tab1的时候:

由于切换tab3一样,故不再截图
当退出该TabActivity时:

以上,注意创建和销毁时的顺序
由于我并没有点击到tab3,tab3中的Activity没有create,所以退出时也没有destroy。
本文详细解析了TabActivity及其子Activity的生命周期变化过程。在TabActivity中,仅在首次进入时会触发onCreate()、onStart()和onResume(),之后无论子Activity如何切换,TabActivity的生命周期都不会再次被调用。而对于子Activity,在首次创建时会经历onCreate()、onStart()和onResume(),在各子Activity间切换时则会触发onPause()和onResume(),在退出TabActivity时则会经历onPause()、onStop()和onDestroy()。
312

被折叠的 条评论
为什么被折叠?



