Android四大组件——Activity的生命周期

  Activivity作为android四大组件之首,在使用中是最多的组件,在中文直译为活动,在一个项目中,正常情况下,除了Window,dialog,Toast之外,我们见到的界面只有Activity。

那么我们就来研究下一般情况下Activity的生命周期吧。

 

  当我们启动一个应用时,会去配置清单中查找入口的Activity,至于启动查找这里就不说了,然后会回调一系列方法。话不多说,先上张图Android四大组件——Activity的生命周期_第1张图片

在看图的时候我们说说各个方法的回调时间:

1.oncreate():表示Activity正在被创建,在这个方法中,一般是加载布局,初始化一些界面、数据的操作。

2.onstart():表示Activity正在启动,此时Activity还在后台,无法与用户交互,我们还不能看见。

3.onresume();表示Activity已经被用户可见,已经在前台,此时可以和用户交互。

举个栗子:当我们正常启动一个名字叫A的Activity时都会先回调oncreate()-onstart()-onresume();

4.onpause();表示Activity正在被停止,此时Activity还在前台,一般此方法能够回调结束后会接着会回调onstop()这个方法,我们在此方法可以保存数据或者停止动画,但是需要注意的一点是在此方法内不可做太耗时的操作,因为只有当当前的Activity执行onpause()结束后,才会回调新启动的Activity里面的onresume();即另外的Activity才能被用户可见。

5.onstop();在onpause()之后被回调,在这里面可做一些稍微耗时的操作。

6.ondestory();表示Activity被销毁时回调的方法,我们可以在此方法内做一些回收和数据释放等一些工作。

举个栗子:当我们从A这个Activity启动另外一个Activity名字叫B时候,或者按Home键,A会执行onpause()-onstop(),需要注意的是,如果A这个Activity设置了主题为透明的话就不会只行onstop这个方法了,还有一个情况可能在内存不足时执行ondestory;当我们按下back键时则执行onpause()-onstop-ondestory();

7.onrestart();表示Activity正在被重新启动;

还是举个栗子:当我们按下home键时一般都是onpause-onstop,此时Activity退回到后台,我们在启动此Activity时则执行onrestart() -onstart()-onresume();

 

从回调方法我们可以看出oncreate()和onDestory是一组,onresume()和onstop()是一组,以为他们都是从是否在前台这个角度来说,onstart()和onpause()则是从是否可见这个角度来说的。

 

今天的博客就写到这里吧,如有不正,有大神看见了,希望能指正下。要撸代码了,下一篇我准备总结下在横竖屏切换时的Activity的生命周期及Activity的启动模式及应用场景。

路漫漫其修远兮,吾将上下而求索。

 

 

你可能感兴趣的:(android)