Activity生命周期的分析

本篇文章只是简单分析一下Activity生命周期的历程,介绍几个关键的方法,对于Activity的生命周期,网上已经有很多大神都详细介绍了,我就不再展开讨论。主要也是为了自己理解这两种情况,特与大家分享。

1、Activity正常状态下的生命周期分析:
onCreate—>onStar–>onResume—>onPause—>onStop—>onDestroy

onCreate/onDestroy:创建和销毁时会分别调用一次,在整个生命周期只调用一次。(后台状态,Activity不可见)
onPause/onResume:这两个方法会被频繁调用,区别在于是否与用户存在交互。(前台状态,是可见的。)
当A启动B时,用户迅速点击back返回至A时,即B还未创建。此时会先执行A的onPause,然后再执行A的onResume。

2、Activity异常情况下的生命周期分析:
异常情况通常指的是,资源相关的系统配置发生改变(横竖屏切换),或者是系统内存不足时,Activity被杀死。在这种情况下有如下重要方法需要调用:

onSaveInstanceState:保存activity的状态,具体要保存的信息根据不同的view以及业务规则定。该方法通常在onStop之前调用,与onPause的调用顺序无关,可前可后。

onCreate和onRestoreInstanceState:当Activity重新创建时,恢复上一次异常退出时保存的数据。onRestoreInstanceState方法在onStart方法之后被调用,在onRestoreInstanceState中不需要判断Bundle saveInstancestate是否为null,因为当其为null时系统不会调用次方法。而onCreate是需要判断saveInstancestate的状态的。所以Google建议开发人员使用onRestoreInstanceState方法来恢复数据。

猜你喜欢

转载自blog.csdn.net/hb_csu/article/details/50942427