安卓四大组件:
activity活动,服务Service,广播接收器(BroadcastReceiver),内容提供者(Content Provider)。
avtivity作为安卓四大组件之一,出现的频率非常高,基本上我们在安卓的任何地方都会看到它的踪迹。所以呢今天给大家分享的就是activity的生命周期。
在日常应用中activity是与用户交互的一个接口,它提供给用户操作的窗口。在与用户交互的过程中,activity自身是通过生命周期的方式来管理自己的创建与销毁。
那就让我们来看看activity的生命周期是如何运作的。
① 这个是avctivity的生命周期图,我们看当一个activity被启动之后呢,首先会执行oncreart()方法,然后执行onstart()方法,再执行onresume方法。
那么在执行到onresume()方法之后,这个activity就处于运行状态,也就是用户看到的焦点界面。
② 这时候如果说另一个活动来到前台,activity就会执行onpause()方法。
③ 之后当这个activity处于不可见状态的话,就会执行onstop()方法。如果说这个activity处于不可见状态,用户重新导航回到这个活动的话,就会调用onRestart()这个方法,之后再去执行onstart()方法。之后activity又处于一个运行状态。
④ 如果activity处于不可见状态,这时又有同级别优先级比较高的程序需要比较多内存,那么操作系统就会根据优先级来释放优先级比较低的活动,那么这个activity这个时候这时候用户重新导航到这个activity时,这个activity又是重新执行到oncreat()这个方法,因为已经开始了完整的activity生命周期。
⑤ 活动处于不可见的状态,同时activity被系统清理掉,同时会执行到ondestroy()这个方法,在执行到ondestory()这个方法activity处于被关闭的状态。
onPause 用于由一个Activity转到另一个Activity、设备进入休眠状态(屏幕锁住了)、或者有dialog弹出时。
onStop 用于不可见的Activity(有对话框弹出时,这时底下的activity仍然可见,所以此时onStop不会被调用)