Activity生命周期

2016-07-19  本文已影响97人  韩sang

Activity的生命周期和启动模式

典型情况下的生命周期

图 1.1

(1)Activity第一次启动,onCreate()->onStart()->onResume()

(2)打开新的Activity或切换桌面或其他的App,onPause->onStop,如果Activity使用了透明主题,Activity不会回调onStop

(3)再次回到Activity,onRestart->onStart->onResume

(4)按back键:onPause->onStop->onDestroy

(5)onCreate与onStop相对应,onStart与onStop相对应,onPause与onResume相对应

**实际开发中有些问题在(5)中也有体现,例如使用Eventbus在Activity之间传递数据,A_Activity在onResume里regist在onPause里unRegist,DataEvent,A_Activity启动B_Activity,B_Activity点击按钮发送一个DataEvent,这时A是无法收到的因为A进入了onPause unRegist了已经,所以这种情况要么A startActivityForResult B,要么在onCreate regist,onDestroy unRegis。对于广播同理。还有一种和网络请求有关的情况,
**

(6)当A启动B时,A先onPause B才会启动,所以为了新的Activity尽早的显示出来,不能再onPause里做耗时工作

异常情况下的生命周期

(1)系统配置发生变化时会造成Activity的销毁重启,我们不想系统重建Activity给Activity指定configChanges属性,常用的属性有:locale:一般指切换了系统语言keyboardHidden:键盘的访问性发生了改变,比如用户调出了键盘,orientation:屏幕的方向发生了改变,屏幕旋转。如果在系统配置变化时需要做一些操作,可以在onConfigurationChanged里实现。

启动模式与生命周期

上一篇下一篇

猜你喜欢

热点阅读