Activity生命周期笔记

  这是我在开发Android一年后写的一篇映像笔记。因为刚开发时经常遇到activity生命周期的问题,自己专门查看过Android源码,相关博客,书籍以及csdn的视频,结合实际开发后自己对Activity的理解写出来的。 Activity作为Android的四大件之一, 面试时被问到的频率是很高的。 

 activity常见的七个生命周期方法。

initView方法(变量的声明和布局文件就不上传了 )
Activity生命周期笔记_第1张图片

第一个 onCreate()
Activity生命周期笔记_第2张图片


第二个  onRestart()
Activity生命周期笔记_第3张图片


第三个 onStart()
Activity生命周期笔记_第4张图片



第四个  onResume()
Activity生命周期笔记_第5张图片



第五个 onPause()
Activity生命周期笔记_第6张图片



第六个 onStop()
Activity生命周期笔记_第7张图片



第七个  onDestroy()
Activity生命周期笔记_第8张图片

这是我创建的Demo, 有三个activity,分别是MainAcitivity和TwoActicity以及ThreeActivity(记得注册以及样式),MainAcitivity里面重写了以上七个方法和initView(),两个button 。现在将demo运行到手机上,进行测试,看日志。
Action one:
点击Demo app 图标,开启程序。MainActivity处于运行状态
Activity生命周期笔记_第9张图片
Action two:
点击手机上的home键,手机回到了桌面,MainActivity看不见了,这时的MainActivity还活着是存在的但不可见,MainActivity处于停止状态。


Action three:
再点击图标, MainAcitivity出现在屏幕最前端,MainActivity处于运行状态。
Activity生命周期笔记_第10张图片

Action four:
点击button one,进入到TwoActivity,MainActivity看不见了(被完全覆盖了),MainActivity处于停止状态。
Activity生命周期笔记_第11张图片

Action five:
点击手机上的返回键,TwoActiviy看不见了,MainActivity出来了,重回屏幕最前端了,MainActivity处于运行状态。
Activity生命周期笔记_第12张图片
Action six:
点击button two,ThreeActicity出现在最前端,MainActivity没有被完全覆盖,依旧可以看见,MainActivity处于暂停状态。

Action  seven:
点击手机上的home键,手机回到了桌面或手机黑屏了,activity看不见了,MainActivity处于停止状态。

Action eight:
当点击图标或手机亮屏时,ThreeActivity和MainActivity又可见了,MainActivity处于运行状态
Activity生命周期笔记_第13张图片

Acition nine:
点击手机上的返回键,ThreeActiviy看不见了,MainActivity出来了且完全可见了,重回屏幕最前端了,MainActivity处于运行状态。

Action ten:
点击手机上的返回键,MainActivity看不见了,程序退出,回到了桌面,MainActivity被销毁了。
Activity生命周期笔记_第14张图片
 最后一点,当MainAcitivity处于暂停、停止状态时可能会被杀死,什么内存不足啊,什么极端情况啊,还没有遇到所以没有日志,可以看看Android生命周期图;当被杀死后在进入到MainActivity,会调用onCreat(),等于重新开启程序了(这个是我看图后的个人的理解)。这点有兴趣的可以深究,新手知道就可以了。

总结:
 
Activity有三个状态:
一、当activity在屏幕前台时(位于当前的顶部),它是处于激活或运行状态的,可以看见且可以相应用户操作的。

二、当activity上面有另一个activity,处于当前屏幕最顶端的activity是透明的或没有完全覆盖之前的activity,之前的activity对用户可见,这时之前的activity处于暂停状态。(有些绕口,不过明白这句了,整个生命周期你也就ok啦)

三、当activity被另一个activity完全覆盖且用户不可见时则处于停止状态,但仍然保留所有状态和成员信息。

                                                                                       
Activity 的退出
对于初学者这个是很疑惑的,我也遇到过,有个很好的办法。
上面介绍的七个方法都是回调方法,是不可以手动调用的,我们只能重写这七个方法里的内容。至于什么时候调用是Activity决定得。我们可以通过finish方法手动调用。
finish(),什么时候需要退出就什么时候调用,调用这个方法时Activity的onStop()和onDestory()就会被调用。(有心的自己测试看看)




                                                                                                       Activity 生命周期图

                                                     
 
                                            Activity生命周期笔记_第15张图片
















































你可能感兴趣的:(Android学习)