activity生命周期的基本介绍

Android开发 - 活动生命周期活动作为四大组件之首,也是使用最频繁的一种组件。本文将主要讲解活动生命周期,包括正常情况下的活动生命周期和异常情况下的活动生命周期。* * 1.正常情况下的活动生命周期**所谓正常情况下的生命周期,是指有用户参与的情况下,活动所经过的生命周期的改变。正常情况下,活动会经历如下过程如图。所示:![这里写图片描述](https://img-blog.csdn.net/2018062221093564?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTgyNTYwNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ 70)(1)的的onCreate:表示活动正在被创建,适合做一些初始化工作实际应用中一般会初始化成员变量和加载布局资源(2)onRestrat :.表示活动正在被重新启动一般是从不可见重新变为可见状态是调用(3)在调用调用调用调用调用onStart:表示活动正在被启动,即将开 ,时可见,但仍旧在后台,无法与用户交互,虽可见,但是我们还看不到(4)的的的的的的onResume:表示活动已经可见了此时活动显示到前台

(5)的的的的的的onPause:表示活动正在停止,此时可以做一些存储数据,停止动画等操作,但不宜太耗时因为此方法执行完,新的活动的的的的的的的onResume才会执行(6)的的onStop :.表示活动即将停止,此时可以做一些回收工作,同样不能太耗时(7)的的onDestroy :.表示活动即将被销毁,此时可以做一些资源释放需要注意的是,如果新的活动采用了透明主题,当前活动便不会回调的的的的的的的onStop。一般情况下是按照图中的顺序来的.onStart和的的的的的的的onStop是从活动可见与否这个角度来配对的,onResume和的onPause是从活动是否位于前台这个角度来配对的。* 2.异常情况下的活动生命周期*所谓异常情况下的生命周期,是指活动被系统回收或者当前设备配置改变导致的活动被销毁重建。一种典型的触发条件是横向屏时,此时活动就会被销毁并且重建。异 在调用,在系统调用的的onSaveInstanceState来保存当前活动的状态(活动会委托窗口,窗口再委托给顶层容器DecorView去保存数据,最后顶层容器再一个通知其子查询来保存数据)。当重建时,系统会在调用调用调用调用onStart之后调用onRestoreInstanceState,销毁时的的的的的onSaveInstanceState所保存的捆绑对象作为参数传给onRestoreInstanceState和的的的的的onCreate,用于取出数据并恢复(谷歌建议我们采用前者去恢复数据)当然是有方法去阻止系统去重建活动的,我们可以为活动指定configChanges属性:

(1)比如我们不想在屏幕旋转时重建Activity,那么就可以指定android:configChanges =“orientation”。(2)其中用的比较多的另两个属性为locale,keyboardHidden。前者为设备的本地位置发生了改变,一般指切换了系统语言。后者一般指用户调出了键盘。(3)屏幕尺寸属性和smallestScreenSize属性比较特殊,他们是API13时添加的。分别表示的情况为屏幕尺寸发生变化和切换到外部显示设备时若机器人:.configChanges =“取向|屏幕尺寸”,那么在分以及目标均低于13时,不会导致重启,否则导致活动重启在不重建时,系统没有调用的onSaveInstanceState以及onRestoreInstanceState方法,而是调用了onConfigurationChanged方法。(4)Android4.2增加了一个的的的的的layoutDirection属性,当改变语言设置后,该属性也会成NEWCONFIG中的一个掩蔽位。所以ActivityManagerService(实际在ActivityStack)在决定是 启动的时候总是判断为重启需要在安卓.configChanges中同时添加的语言环境和的的的layoutDirection在不退出应用的情况下切换到设置里切换语言,发现该活动还是重启了* 3.Android为什么要设计一个生命周期呢*

谷歌官方文档解释说,确保提供一个流畅的用户体验,在活动切换时,以及你的活动意外销毁的情况下,保存好活动状态。(1)你正在编辑信息,这个时候跳出来一个透明提示框,进入了暂停状态,你想再次回到这个活动,当你按HOME退出一个应用时,或者从你的再次回到这个活动时看到你编辑到一半的信息,就需要在的的的的onPause( )回调方法中来执行这些操作。一个应用进入了另一个应用,这个时候之前那活性就变得完全不可见了,进入了停止状态,那么它就应该把它大多数的资源都释放出来了。所以这个时候(3)当你接完一个电话,再次回到之前那个活动,它就从停止状态变成了续状态,这个时候你肯定希望它记录住了你离开时的状态,比如说编辑了一半的信息,正停留在新闻1/3的位置。那么个时候,你就需要在onRestart()或者在调用调用ONS 挞(调方法中来执行这些操作。所以综上所述,之所以会设计出不同的生命周期状态,以及各状态间转换时的回调方法,就是为了适应用户使用过程中的不同场景,进而在特定的场景活动完成特定的事情,以此来确保提供一个流畅的用户体验。* 4.Activity的生命周期是由谁控制的* ActivityManagerService是负责管理Activity的生命周期的.ActivityManagerService是一个非常重要的接口,它不但不负责启动活动和服务,还负责管理活动和服务。

作者:郭建国
原文链接:点击这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值