安卓开发生命周期解释
2016-03-21 17:45
246 查看
打开安卓开发者文档
下面有一张图:详细的介绍了app的生命周期: 来自于官方文档:
如图所见,我们看见了7个生命状态,下面这个截图,介绍了每种生命状态所对应的调用情况:
第四个方法
这时候,Activity启动后必须走的一套流程已经走完了,此时用户不仅可以看到界面,还能进行相关的操作(如在EditText里面输入啦,点击Button啦)。在存放Activity的栈stack中,一个执行了onResume()后的Activity处于栈的最顶层,这并不难理解,在任何时候,你的系统只能有一个Activity处于这个状态。
下面有一张图:详细的介绍了app的生命周期: 来自于官方文档:
如图所见,我们看见了7个生命状态,下面这个截图,介绍了每种生命状态所对应的调用情况:
第一个方法 onCreate() :
app在第一次调用的情况就会调用这个方法,在这个方法中你应该做的事情为:正常的静态设置:创建视图,将数据绑定到列表,等。onCreate()方法也提供了一个Boun也为您提供了一个入口,它的作用在于,如果你的Activity之前已经创建过然后关闭了,下次再启动的时候,这个Bundle参数就会把之前保存的一些数据传递过来,即Activity再次onCreate()的时候会直接恢复到之前的状态。接下来的就会调用onStart()方法。第二个方法onRestart():
只有在Activity经历了onStop()但并没有onDestroy()的时候,再次运行这个Activity就直接会走到onRestart()方法。此时各种变量还保存着,并没有被回收掉,Activity只需要重新绘制界面而已。
第三个方法 onStart():
当Activity执行这个方法的时候,Activity对用户来说已经是可见的了。但此时,用户还不能与Activity进行操作交互。 第四个方法
onResume()
这时候,Activity启动后必须走的一套流程已经走完了,此时用户不仅可以看到界面,还能进行相关的操作(如在EditText里面输入啦,点击Button啦)。在存放Activity的栈stack中,一个执行了onResume()后的Activity处于栈的最顶层,这并不难理解,在任何时候,你的系统只能有一个Activity处于这个状态。第五个方法onPause()
当系统要恢复之前的某个Activity的时候,当前Activity会执行onPause()方法,在这个阶段通常会把一些未保存的数据保存起来,停止动画和其他一些消耗CPU的事情。onPause()一定要执行的快速,因为在它执行完毕之前,下一个Activity是无法恢复的,也可以认为,onPause()如果执行的慢了,就会把主线程阻塞。第六个方法onStop()
当一个Activity对于用户来说不再可见的时候,就会执行onStop()方法,此时会有其他的Activity处于onResume()的状态并将处于onStop()的Activity覆盖掉。当从当前Activity启动一个新的Activity的时候,或者退出当前Activity以及杀死当前Activity的时候,都会执行onStop()方法。第七个方法onDestroy()
这是一个Activity生命周期中的结束阶段,当你主动finish或者系统因为内存不足而杀死一个Activity的时候,就会执行onDestroy()方法。这个时候,Activity就彻底关闭了,占用的一些资源也会被释放掉(如果没有释放完全,那就是程序写的有问题,产生内存泄漏了)。相关文章推荐
- 我是一颗小太阳,浑身充满正能量
- USB取证原理
- 在元心操作系统实现对Android Camera HAL3.2的支持
- 0321 复利计算—贷款
- 普通用户执行sudo报hadoop is not in the sudoers file
- C#代码分析--阅读程序,回答问题
- muduo网络库脉络分析(2)
- U盘装机大师 U盘启动盘制作教程(U盘装系统图文教程)
- 初创团队如何保障软件应用产品的性能质量
- Eclipse(Luna)集成Resin4.0+服务器,以及配置参数
- mysql数据库性能优化与测试
- Matlab的GUI参数传递方式
- Android中的双向链表
- CSS总结(五)——定位 position
- PHP cURL 应用
- Fragment管理actionbar的menu——FragmentMenuSupport
- React-性能优化详解
- App实战项目——学生作品链接
- win32,win64编程永恒;语言编程需要注意的64位和32机器的区别
- jQuery的get()post()getJson()方法