在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
在掌握Android应用开发的学习过程中,Activity生命周期相关知识点是必须掌握的基础内容。本文将会为大家详解Activity生命周期的有关知识,带大家了解什么是Activity生命周期,生命周期的流程以及四个状态,最终达到帮助大家完整掌握Activity用法的目的。下面就让我们一起来学习一下Activity的生命周期吧!
Activity生命周期的概念:
Activity作为Android的四大组件之一,非常的重要,也是最常用的四大组件,使用Activity必须要在AndroidManifest中进行注册。Activity相当于一个servlet,我们的Activity处在这个容器中,一切创建实例、初始化、销毁实例等过程都是容器来调用的,这也就是所谓的“Don't call me, I'll call you.”机制。
Activity的生命周期流程:
onCreate()--->onStart()--->onResume()--->onPause()--->onStop()--->onDestory()
onCreate():当activity是被创建时候,会自动运行该方法。该方法做一些初始化动作,比如创建views,设置数据到list等等,该方法提供了一个Bundle类型的变量,该变量中有这个activity以前的状态信息,前提是以前存过这些信息。这个方法执行完后执行的是onStart()方法;若在onCreate方法中加入finish()方法,onCreate下一个运行onDestroy方法。
onRestart():把activity从onStop状态唤醒时,会用onRestart方法,该方法优先于再次运行的onStart,运行完onRestart之后运行onStart。若在onRestart()方法中加入finish()语句,则还是会继续运行onStart及后面的状态方法直到onDestroy运行完
onStart():当activity对用户可见时会调用onStart,当activity在前台显示时,会运行onResume;当activity还没在前台显示就被隐藏(停止状态)了会运行onStop(),比如在onStart方法中用了finish()方法的话,onStart()之后就会直接运行onStop->onDestroy。
onResume():当activity开始与用户交互时,会调用onResume,并且为了用户操作此时该activity位于activity栈的顶部。经过某些操作后该方法执行完后执行的是onPause()
onPause():当一个activity运行到onResume方法后,不管是这个activity要销毁还是要暂停或停止,都会调用该方法。这个方法之后有可能是onResume也有可能是onStop,若是在这个activity-A中打开一个不完全覆盖这个activity-A的新activity-B,那么activity-A就会是onPause状态,当activity-B退出时,activity-A就直接运行onResume(前提是onPause的方法执行完了,否则会等onPause方法执行完后才运行onResume方法,所以不建议在这个方法中执行CPU密集的操作)。若是需要退出activity-A,那么下一个就会执行onStop。onPause()用于提交未保存发生变化了的持久化数据,及停止动画及其他其他比较消耗CPU的事件(比如广播接收器,传感器(比如GPS),或者消耗电量的资源),这是为了更好的运行新的activity。
onStop():当这个activity完全看不见的时候,会调用onStop方法,因为另一个activity会调用onResume并且覆盖这个activity。以下三种情况都会使这个activity调用onStop()方法,第一种是一个新的activity被执行,第二种是一个已经存在的activity被切换到最前端,第三种是这个activity要被销毁。如果通过用户召回这个activity,那么会调用onRestart方法;若这个activity要被销毁,则调用onDestroy方法。
onDestroy():当activity销毁前会调用该方法,比如发生如下情况:activity调用了finish()方法来结束这个activity,或者因为系统为了节省空间而临时销毁这个activity,这两个情况可以通过isFinishing()方法判断。
Activity的四个状态:
1、running->当前显示在屏幕的activity(位于任务栈的顶部),用户可见状态。
2、poused->依旧在用户可见状态,但是界面焦点已经失去,此Activity无法与用户进行交互。
3、stopped->用户看不到当前界面,也无法与用户进行交互 完全被覆盖。
4、killed->当前界面被销毁,等待这系统被回收。
更多学习相关技术的文章,尽在博学谷资讯栏目。如果大家想完全掌握Activity的生命周期,不妨上博学谷学习Android应用开发的基础课程。上面有资深的在线老师手把手带大家理解Activity生命周期回调方法,并且有Activity的启动模式和应用场景。大家还在还等什么呢,现在就上博学谷官网在线学习吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
学什么好就业?大学毕业后才开始学编程入行晚不晚?
学什么好就业?往往大学毕业的大学生面临择业的时候就会出现迷茫,大学课程非常丰富,但是对于大学生来说,并不了解目前市场所需要的技术热点是什么,或者相对实战能力较弱,担心无法获得高薪,甚至有同学认为大学毕业后才开始学习编程,入行已经晚了。其实大家并不需要过多的担忧。如果你是计算机专业毕业的,目前与编程技术相关的大部分岗位都是出于高薪的水平
6625
2019-08-12 18:30:51
什么是Docker?Docker入门教程
什么是Docker?相信大家对Docker或多或少都有所了解,的确,目前使用Docker已经十分常见了,尤其是在一线的互联网公司,更是会常常使用到Docker。本篇Docker入门教程就来带大家,简单认识一下Docker,了解它的优势和一些常用命令,感兴趣的朋友可以看一下。
5156
2019-11-26 13:10:25
疫情对互联网格局的影响解析
疫情之下,线下实体经济发展受到剧烈冲击的同时,各大互联网公司都在此次灾情面前面临巨大的挑战和机遇。受疫情影响,闭门不出的用户与互联网有了更长时间的深入接触,因此我们可以看到疫情改变了我们的许多生活习惯。比如,用户对社交、资讯平台的更频繁使用,在线远程办公和线上学习软件的用户暴涨,生鲜电商行业的异军突起,以及传统线下实体店营销模式向线上转型的调整等等。下面我们就来具体分析一下疫情对互联网格局的影响。
8369
2020-03-02 10:59:14
编程怎么入门?IT程序员需要学什么?
很多人羡慕软件开发薪资待遇好想入门编程,不需要和复杂的社会打交道;作为零基础的小白想学习编程,要了解需要先学什么、后学什么、具体怎么做?学什么语言根据自己的喜好,不知道学什么好可以选择java编程,学起来相对容易,用Java开发的企业比较多工资待遇高,也可以学html、python等入门级的语言。
5131
2020-04-20 16:35:41
在工作中没有成长应该怎么办?
许多互联网工作者常常有这样的感觉,工作了大半年,还做着最初级的工作。比如每天都是敲代码完成需求,或者是画原型写文档,更甚者一直给公司打杂辅助别人的工作。而且也不知道业余时间该干什么,不知道该如何去提升自己,或者说不知道要从哪些方面入手来提升。下面我们就来聊聊“在工作中没有成长应该怎么办”。
6810
2020-07-30 14:28:11