Activity详解(二)——异常情况下的生命周期分析
在默认情况下,如果我们的Activity不做特殊处理,那么当系统配置发生改变后,Activity就会被销毁并重新创建,其生命周期如下图:当系统配置发生改变后,Activity会被销毁,其onPause,onStop,onDestroy均会被调用,由于Activity是在异常情况下终止的,系统会调用onSaveInstanceState来保存当前Activity的状态。
通过上述图示,我们可以总结Activity的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
Activity生命周期的终点。有两种情况会导致它被触发:1)执行了Activity#finish()方法;2)Android系统由于资源不足等原因决定杀掉Activity所在进程。通过isFinishing()方法可以判断出是哪种情况。在这个方法里,我们一般要做的事情是释放Activity占有的资源,例如后台正在进行的下载线程等等。
活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。当它位于金字塔的顶部时,活动位于用户的前台,此时用户可以与活动进行交互。当用户想要离开活动时,系统调用另一系列方法将活动的状态从顶部移到底部。
当 Activity 失去焦点, 被一个新的非全屏的 Activity 或者一个透明的 Activity 被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接, Activity 依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。
首先按照官方生命周期流程图逐个解释生命周期回调 当Activity首次创建的时候触发,这是生命周期的第一个方法,我们需要重写这个回调,并在调用setContentView()去加载界面布局资源,以及实例化一些变量。该方法有一个参数savedInstanceState,该参数包含Activity先前保存状态的Bundle对象。
如何管理Android中Activity的生命周期?
1、管理Android中Activity的生命周期 在一个activity的生命周期中,系统会像金字塔模型一样去调用一系列的生命周期回调函数。Activity生命周期的每一个阶段就像金字塔中的台阶。当系统创建了一个新的activity实例,每一个回调函数会向上一阶移动activity状态。
2、在Activity生命周期中,系统调用App生命周期中设置的回调方法,这些生命周期回调方法在第一层就像一个金字塔。活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。
3、使用Activity.startActivityForResult()的方式做链式启动,最后一个Activity.finish()前setResult(),通知上一页结束,依次通知,就能达到清栈的意图。
4、在Activity的生命周期中有很多的回调方法,系统调用Activity中的这些回调方法,就像是爬一个阶梯。而这些回调方法就相当于阶梯的每一层。当系统创建了一个新的Activity实例,回调方法一层一层的从最低层爬到最高层,也就是Resumed()。到位于顶楼的时候,也就是这个Activity就位于用户的前台。
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实例时,回调方法从塔的底部一级一级地移动到塔的顶部。当它位于金字塔的顶部时,活动位于用户的前台,此时用户可以与活动进行交互。当用户想要离开活动时,系统调用另一系列方法将活动的状态从顶部移到底部。
如何管理Android中Activity的生命周期
1、onCreate:当Activity创建时仅且调用一次,该方法主要适用于初始化页面。2 onStart:当Activity调用onCreate方法之后,然后调用此方法开启Activity,Activty此时可见但不可交互。3 onResume:此时Activity在前台可见且可与用户交互。适合做UI更新操作。4 onPouse:当Activity被另外一个Activity覆盖时调用该方法。
2、管理Android中Activity的生命周期 在一个activity的生命周期中,系统会像金字塔模型一样去调用一系列的生命周期回调函数。Activity生命周期的每一个阶段就像金字塔中的台阶。当系统创建了一个新的activity实例,每一个回调函数会向上一阶移动activity状态。
3、在Activity生命周期中,系统调用App生命周期中设置的回调方法,这些生命周期回调方法在第一层就像一个金字塔。活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。
4、Activity的生命周期 首先我们来看一下官方文档中给出的图示:通过上述图示,我们可以总结Activity的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
5、使用Activity.startActivityForResult()的方式做链式启动,最后一个Activity.finish()前setResult(),通知上一页结束,依次通知,就能达到清栈的意图。
6、在Activity的生命周期中有很多的回调方法,系统调用Activity中的这些回调方法,就像是爬一个阶梯。而这些回调方法就相当于阶梯的每一层。当系统创建了一个新的Activity实例,回调方法一层一层的从最低层爬到最高层,也就是Resumed()。到位于顶楼的时候,也就是这个Activity就位于用户的前台。
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的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2、当一个activity启动了另外一个的时候,它们都会经历生命周期变化。一个会暂停乃至停止,而另一个则启动。这种情况下,你可能需要协调好这些activity:生命周期回调顺序是已经定义好的,尤其是在两个activity在同一个进程内的情况下: 调用当前activity的 onPause() 方法。
3、因此,Activity有如下3种生命周期:整体生命周期:onCreate - ... ... - onDestroy。可视生命周期:onStop - ... ... - onPause。焦点生命周期:onPause - onResume。
4、onCreate():当activity第一次被创建的时候调用。onStart():当activity变成用户可见的时候调用。onResume():当界面获取焦点的时候调用。onPause():当界面失去焦点的时候调用。onStop():当界面不可见的时候调用 onRestart():当Activity重新启动时调用。onDestroy():当activity被销毁的时候调用。
5、活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。当它位于金字塔的顶部时,活动位于用户的前台,此时用户可以与活动进行交互。当用户想要离开活动时,系统调用另一系列方法将活动的状态从顶部移到底部。
6、empty process(空白模式)参考官方给出的生命周期图可以知道Activity的生命周期分为7个方法 onCreate()、onStart() 、onResume()、 onPause()、onStop()、onDestory() 、onRestart()其中前景模式是由onCreate(创建)、onStart(启动) 、onResume(可见可交互)三个方法来体现的。
转载请注明:beat365·「中国」官方网站 » 感悟评价 » activity生命周期心得,activity生命周期的状态
版权声明
本文仅代表作者观点,不代表B5编程立场。
本文系作者授权发表,未经许可,不得转载。
发表评论