TabActivity 是android应用中很特殊的一个activity,再特殊它也是继承Activity,生命周期也应该是符合Activity的那个 onCreate--》onResume....这样的正常的生命周期的吧?
本文之所以提到是因为,是因为我再使用TabActivity的时候,每次点击了tab子activity,而我们的mainActivity的onResume都会调用一次,当时感觉很奇怪,这不是不符合Activity生命周期吗?在正常的生命周期中,当activity从新被focus的时候onresume才会调用。但是这里的mainactivity一直显示着啊。
别着急,听我慢慢唠叨。
TabActivity可以显示多个activity,给人的感觉就像加载了多个activity一样,这里先不提其加载原理(浅析原理:http://bbs.51cto.com/thread-1012907-1.html),比如说吧
做个假定先: 比如我们最外面的Activity是MainActivity, 第一个tab子Activity是AActivty, 第二个tab子Activity是BActivity .我们要的效果就是点击mianActivity界面上的一个Atab,就会显示AActivity的布局内容,点击mainActivity界面上的一个Btab就会显示BActivity上的布局内容。
问题来了,当我们AActivity界面上的一个按钮AButton的时候,mainActivity的OnResume方法就会调用,同理点击BActivity一会触发Onresume。
其实原理还是一样的:当我们点击AButton的时候,会响应AActivity上AButton的监听时间,说明我们现在已经进入AActivity了,而这个界面还是处于mainActivity,说明我们又回到了mainActivity上来了,从而每次点击AActivity或者BActivity上的事件的时候都会触发。 你可能会问了,为什么我感觉没有进入AActivity中呢?这个。。 我也不知道,但是我知道肯定进去了,只是营造一个假象感觉我们还是停留在mainActivity上。但是什么时候进去的,进去的形式是什么?这就要研究其加载原理了。
综上:onresume在每次点击了tab子activity的时候都会调用。