Activity生命周期

1.正常情况  

  正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, 在被干掉的时候顺序是onPause -> onStop -> onDestroy ,

这样就是一个完整的生命周期。程序正运行着呢来电话了,新出的一个全屏的Activity,那么:onPause->onStop ,恢复的时候onStart->onResume ,

如果打断这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复的时候onResume 。

(Activity未被完全覆盖只是失去焦点:onPause--->onResume)

 

2. 返回键与Home键区别

   back键默认行为是finish处于前台的Activity的,即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的。Home键默认是stop

前台的Activity,而不是Destroy,若再次启动它,会调用onSaveInstanceState() 方法,保持上次Activity的状态则是从OnRestart开始的---->onStart()

--->onResume()。

 

3.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态

  当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B,这个时候A会执行 onSaveInstanceState。B 完成以后又会来找A,

这个时候就有两种情况,一种是A被回收,一种是没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上参数

savedInstanceState,没被收回的就还是onResume就好了。 

 

4. 横竖屏切换的生命周期

1).不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2)设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3)设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

posted @ 2014-06-19 00:34  等风来。。  Views(213)  Comments(0Edit  收藏  举报
------------------------------------------------------------------------------------------------------------ --------------- 欢迎联系 x.guan.ling@gmail.com--------------- ------------------------------------------------------------------------------------------------------------