Activity 的生命周期
两个大窗口的Activity之间的切换:
启动一个新的Activity时,需要依次调用oncreate、onstart、onResume方法,OnCreate方法是在第一次创建Activity的时候调用的,当Activity能被用户看到的时候调用Onstart方法,当用户能获取到焦点的时候调用OnResume方法。
从第一个Activity启动第二个Activity时,先调用第一个Activity的OnPause方法(此方法当应用程序启动另一个Activity的时候调用,通常调用之前需要保存当前的数据,便于还原),再调用第二个Activity的OnCreate、Onstart、OnResume方法,最后调用第一个Activity 的OnStop方法(此方法用于当Activity处于不可见的状态,若该窗口并未被完全遮挡(小窗口),则不会调用该方法)。
点击Back回到第一个Activity后,调用第二个Activity的OnPause方法,再调用第一个Activity的OnRestart方法,注意此时并不是调用OnCreate方法,因为第一个Activity并未被销毁,接着调用第一个Activity的OnStart、OnResume方法,然后是第二个Activity的OnStop方法,最后是调用OnDestory方法。
我搞不明白这时候为什么会调用OnDestory方法,求解释!!!
OnDestory方法有两种可能被调用: 1、调用了该Activity的finish方法
2、操作系统资源不够用,选择性的销毁不可见的Activity
若从大窗口切换到小窗口,先调用大窗口的OnPause方法,在调用小窗口的OnCreate、OnStart、OnResume方法,因为并未完全遮住大窗口,因此不调用大窗口的OnStop方法接下来从小窗口切换到大窗口,先调用小窗口的OnPause方法,再调用大窗口的OnResume方法。
Activity是以栈的形式存放的,先进后出的顺序,小窗口的创建在Manifest.xml中添加android:theme属性