Activity中包含以下方法:
onCreate() :第一次启动Activity时调用该方法,这这个方法中应当初始化所有的静态数据,创建views并绑定相关的数据,该方法还为您提供了一个包含该活动先前冻结状态的包.通常后面是onStart()方法。
onRestart():重新调用被stop的activity,使它从新启动。通常后面是onStart()方法.
onStart():当用户可见该activity时调用该方法。当该activity可见时,后面调用OnResume()方法;当activity不可见时,后面调用onStop()方法。
onResume():当activity将要与用户互动时,调用该方法,此时activity在堆栈的顶部,用户可以输入信息。后面调用onPause()方法
onPause():当系统回复一个activity时调用该方法,通常这里用来提交未被保存的数据,停止动画、占用处理器等。这个方法的实现必须非常快,因为下一个activity直到该方法返回才回复。当返回先前的activity后面调用的是onResume(),当该activity不可见时后面调用
onStop()。
onStop()当其他的activity回复并覆盖当前的activity时,不再对用户显示时调用该方法。这可能发生:启动一个新的Activity或者是返回上一个activity,或者是这个ctivity销毁。
ondestroy():activity销毁时最后调用的一个方法。这可能发生在:调用啦finish()方法,或者系统回收,节省空间。通过isFinishing()的方法区分这两种情况:
根据以上的分析:
当一个Activity第一次启动时执行方法的顺序为:onCreate()-->>onStart()-->>OnResume()
当Activity进入下一个Activity时或者被别的页面覆盖时:onPause()-->>onStop()
当返回该Activity时:onRestart()-->>onStart-->>onResume()
在机器上运行真实情况:
当一个Activity第一次启动时执行方法的顺序为:onCreate()-->>onStart()-->>OnResume()
当Activity进入下一个Activity时或者被别的页面覆盖时:onPause()-->>onStop()
当返回该Activity时:onRestart()-->>onStart-->>onResume()
理论与实践一致。
综上可以看出Activity的运行情况和生命周期在各个阶段都是有相应的方法来处理的,我们可以利用这些方法及时的保存数据,更新页面等。