Activity详解(二)——异常情况下的生命周期分析
1、在默认情况下,如果我们的Activity不做特殊处理,那么当系统配置发生改变后,Activity就会被销毁并重新创建,其生命周期如下图:当系统配置发生改变后,Activity会被销毁,其onPause,onStop,onDestroy均会被调用,由于Activity是在异常情况下终止的,系统会调用onSaveInstanceState来保存当前Activity的状态。
2、通过上述图示,我们可以总结Activity的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3、Activity生命周期的终点。有两种情况会导致它被触发:1)执行了Activity#finish()方法;2)Android系统由于资源不足等原因决定杀掉Activity所在进程。通过isFinishing()方法可以判断出是哪种情况。在这个方法里,我们一般要做的事情是释放Activity占有的资源,例如后台正在进行的下载线程等等。
如何管理Android中Activity的生命周期?
1、管理Android中Activity的生命周期 在一个activity的生命周期中,系统会像金字塔模型一样去调用一系列的生命周期回调函数。Activity生命周期的每一个阶段就像金字塔中的台阶。当系统创建了一个新的activity实例,每一个回调函数会向上一阶移动activity状态。
2、在Activity生命周期中,系统调用App生命周期中设置的回调方法,这些生命周期回调方法在第一层就像一个金字塔。活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。
3、使用Activity.startActivityForResult()的方式做链式启动,最后一个Activity.finish()前setResult(),通知上一页结束,依次通知,就能达到清栈的意图。
如何在android面试中把Activity的生命周期说的很有逼格
Activity生命周期的终点。有两种情况会导致它被触发:1)执行了Activity#finish()方法;2)Android系统由于资源不足等原因决定杀掉Activity所在进程。通过isFinishing()方法可以判断出是哪种情况。在这个方法里,我们一般要做的事情是释放Activity占有的资源,例如后台正在进行的下载线程等等。
在Activity生命周期中,系统调用App生命周期中设置的回调方法,这些生命周期回调方法在第一层就像一个金字塔。活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。
onCreate:当Activity创建时仅且调用一次,该方法主要适用于初始化页面。2 onStart:当Activity调用onCreate方法之后,然后调用此方法开启Activity,Activty此时可见但不可交互。3 onResume:此时Activity在前台可见且可与用户交互。适合做UI更新操作。4 onPouse:当Activity被另外一个Activity覆盖时调用该方法。
Activity的生命周期
1、Activity的生命周期 首先我们来看一下官方文档中给出的图示:通过上述图示,我们可以总结Activity的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2、当一个activity启动了另外一个的时候,它们都会经历生命周期变化。一个会暂停乃至停止,而另一个则启动。这种情况下,你可能需要协调好这些activity:生命周期回调顺序是已经定义好的,尤其是在两个activity在同一个进程内的情况下: 调用当前activity的 onPause() 方法。
3、因此,Activity有如下3种生命周期:整体生命周期:onCreate - ... ... - onDestroy。可视生命周期:onStop - ... ... - onPause。焦点生命周期:onPause - onResume。
Android基础之Activity生命周期
通过上述图示,我们可以总结Activity的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
Activity生命周期的终点。有两种情况会导致它被触发:1)执行了Activity#finish()方法;2)Android系统由于资源不足等原因决定杀掉Activity所在进程。通过isFinishing()方法可以判断出是哪种情况。在这个方法里,我们一般要做的事情是释放Activity占有的资源,例如后台正在进行的下载线程等等。
在将要讨论到的activity生命周期里,你可以知道,Android系统会为你管理activity的生命周期,所以你并不需要显式销毁activity(即调用finish类方法)。显式地调用finish类方法,会对用户的体验产生不利的影响,除非你确实是不希望用户返回到此activity(界面),才去显式调用finish类方法。
Activity的生命周期及常见回调顺序
1、在Activity被销毁之前会回调该方法,这也是Activity生命周期的最后一个回调。
2、activity主要生命周期的方法说明: onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!onStart():activity变为在屏幕上对用户可见时调用。
3、onCreate:当Activity创建时仅且调用一次,该方法主要适用于初始化页面。2 onStart:当Activity调用onCreate方法之后,然后调用此方法开启Activity,Activty此时可见但不可交互。3 onResume:此时Activity在前台可见且可与用户交互。适合做UI更新操作。4 onPouse:当Activity被另外一个Activity覆盖时调用该方法。
4、onCreate():当activity第一次被创建的时候调用。onStart():当activity变成用户可见的时候调用。onResume():当界面获取焦点的时候调用。onPause():当界面失去焦点的时候调用。onStop():当界面不可见的时候调用 onRestart():当Activity重新启动时调用。onDestroy():当activity被销毁的时候调用。
5、活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。当它位于金字塔的顶部时,活动位于用户的前台,此时用户可以与活动进行交互。当用户想要离开活动时,系统调用另一系列方法将活动的状态从顶部移到底部。
6、当Activity可见且获得用户焦点能交互时系统会调用 onPostResume() activity真正获取焦点之后回调,此方法在onResume()方法之后 - 通常用不到 onAttachedToWindow() 在第一次调用onDraw前调用的,也就是我们写的View在没有绘制出来时调用的,但只会调用一次。
转载请注明:云顶国际·(中国)唯一官方网站 » 感悟评价 » activity生命周期心得,activity生命周期七种方法
版权声明
本文仅代表作者观点,不代表B5编程立场。
本文系作者授权发表,未经许可,不得转载。
发表评论