首页 > 试题广场 >

请描述下Activity的生命周期。

[问答题]
请描述下Activity的生命周期。
推荐

图片说明
如上图

1.onCreate

在活动第一次被创建时调用,可以在这个方法中完成活动的初始化操作,比如加载布局,绑定事件

2.onStart

在活动由不可见变为可见时候调用

3.onResume

在活动准备好和用户进行交互时调用,此时活动一定位于返回栈的栈顶,并处于运行状态

4.onPause

在系统准备去启动或者恢复另一个活动时候调用。可以在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据(但不能做耗时操作,否则影响新的栈顶活动的使用)

5.onStop

在活动完全不可见的时候调用
与onPause区别:如果启动一个对话框,那么onPause会执行,onStop不会

6.onDestroy

在活动被销毁前调用,之后活动变为销毁状态

7.onRestart

这个活动由停止状态变化运行状态之前调用,也就是活动重新被启动了。
我们可以将活动分为三种三种生存周期。
  1.完整生存期
由 onCreate->onDestroy

2.可见生存期

由 onStart->onStop

3.前台生存期

由 onResume->onPause
编辑于 2017-05-22 14:58:27 回复(1)
启动Activity,系统依次调用onCreate(),onStart(),onResme()方法,Activity进入运行状态。
当前Activity被覆盖或者锁屏了,调用onPause()方法,暂停当前Activity的执行。
当前Activity被由覆盖状态返回或解锁,调用onResme()方法,恢复运行状态。
当前Activity跳转到新的Activity或者回到主屏时,调用onPause()方法,然后调用onStop()方法,进入停滞状态。
用户回到Activity时,调用onRestart()方法,之后调用onStart()方法,onPause(),再次进入运行状态。
当用户退出当前Activity时,调用onPause()方法,然后调用onStop()方法,再调用onDestory()方法,结束当前Activity。
如下图:

发表于 2017-09-07 08:58:05 回复(0)

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

发表于 2017-08-08 16:44:48 回复(0)
1.活动被创建:onCreate(); 2.活动处于可见但无焦点状态:Start(); 3.活动处于可见可交互状态:onResume(); 4.有新活动处于交互状态,如dialog,活动处于 可见不可交互状态:Pause(); 5.活动回到原先的状态,无需重新创建:restart(); 6.活动不可见不可交互:Stop(); 7.活动被销毁;
发表于 2017-03-25 23:34:24 回复(0)

主要生命周期又可以分为两部分,异常情况下的生命周期和正常情况下的生命周期,这个是之前自己做的总结,

生命周期:生命周期中的主要方法,其中界面的主要方法顺序是

onCreate()

onStart()

onResume()

onPause()

onStop()

onDestroy()

其中还有onRestart()

onCreate()是整个activity初始化的地方

onStart是程序开始 此时程序对于android系统来说是可见的,相当于界面已经绘制好,但是现在还没有展示到前台界面。此时用户不可见。

onResume 是对用户来说界面可见了,所以在此中不能处理过多的东西,此时如果做耗时的行为app会展现的比较慢。

onPause 是activity即将不可见,此时在此中也不能做耗时的行为,如果做了耗时行为,应用在启动其他activity也是会有卡顿的。

onStop这个方法是界面已经对用户来说不可见了,此时也不能做相关耗时的工作。

onDestroy 这个方法时在activity将要被正常销毁掉了,此时会调用此方法

针对onRestart 是针对应用重新启动的方式,什么时候会重新启动呢,当界面被遮挡之后又展现出来此时会调用onRestart 相当于宠新启动。

Activity的生命周期其实分为两部分:

正常的生命周期

从图中可以看出其中有些方法时一一对应的,之所以定义这些回调方法时处理activity因为各种情况下的处理例如突然被打断,或者是其他的一些情况,从而满足各种各样的使用情形。

异常情况下的生命周期

异常情况又分为两种;

(1)系统内存回收机制,系统会根据activity的优先级来回收内存,

(2) 另一种情况是是手机的配置发生变化此时需要刷新activity来达到及时生效的目的,例如手机的屏幕方向变化这种常见的情况,此时手机会使activity 重新生成,来适应手机的配置变化情况,

对于第一种情况中的activity优先级 分为三类一种是前台activity 一种是后台activity 一种是前台但是非可见activity

这三种的优先级分别是 可见activity大于可见但是非前台 大于后台activity

图片说明

发表于 2017-01-25 17:15:40 回复(0)