安卓Activity的生命周期篇章(一)

对于安卓开发而言,activity和activity的生命周期既是基础也是重中之重,真正理解了activity的生命周期才能娴熟的运用并开发出高质量的代码。(关于activity的认知可以看我上一篇文章安卓四大组件介绍)一、Activity的状态 Activity/Running: 活动状态,即当前activity为用户可见并且可与用户进行交互。 Paused: 当activity失去...
摘要由CSDN通过智能技术生成

对于安卓开发而言,activity和activity的生命周期既是基础也是重中之重,真正理解了activity的生命周期才能娴熟的运用并开发出高质量的代码。(关于activity的认知可以看我上一篇文章安卓四大组件介绍)

一、Activity的状态
Activity/Running:
活动状态,即当前activity为用户可见并且可与用户进行交互。
Paused:
当activity失去焦点时,或打开一个非全屏的activity或被一个透明的activity置于栈顶时,此时activity处于Paused状态,是不可与用户交互的,但是该activity还是可见的并且其所有状态信息和成员变量都是保存不变的,除非系统内存紧张才会被系统回收。
Stopped:
当一个activity被另一个activity完全覆盖的情况下,被覆盖的activity就会进入stopped状态,并且变的不可见,但是跟Paused状态一样会保存所有状态信息和成员变量。
Killed:
当Activity被系统回收掉时,Activity就处于Killed状态。

二、Activity的生命周期
1.生命周期一览:

相信很多人都看过这张生命周期图,先给大家混个眼熟,后面我们将围绕这张图进行分析。

2.典型的生命周期
所谓典型的生命周期就是在用户参与的情况下,activity经历创建、运行、停止、销毁的正常周期,下面首先介绍下几个主要生命周期方法的调用时机,然后在通过例子进行验证。

onCreate:该方法是在activity被创建的时候调用,它是第一个被调用的方法,我们在创建activity时一般都要重写这个方法,可以在此方法里面完成一些初始化操作,如:setContentView()设置界面布局资源,初始化一些所需的组件信息等。
onStart:创建完activity之后便要启动activity,此时该方法被调用,activity已处于可见状态,只是还没有在前台显示,因此无法与用户进行交互。可以简单理解为activity已显示而我们无法看见摆了。
onResume:此方法被调用时,说明activity处于前台可见了,可与用户进行操作。此时activity处于Activity/Running状态,它与onStart()方法的相同之处是两者都表示可见,只不过onStart()执行时activity还在后台不可与用户交互,而onResume()则已显示在前台可与用户交互,从前面的流程图可以看出,当activity停止的时候(onPause和onStop被执行),再重新回到前台时onResume()也会被执行,因此也可以在此方法中进行一些资源的初始化,比如重新初始化onPause方法中释放掉的一些资源。
onPause:回调此方法说明activity正在停止(Paused状态),一般来说紧接着会执行onStop()方法,但是看流程图,有可能onPause执行之后就执行onResume方法了,这种极端的情况可能是用户操作使当前Activity退居后台后又迅速地再回到当前的Activity,此时onResume方法就会被回调。当然在onPause方法中可以进行一些资源的释放以及停止动画或者数据存储等,但是不能太耗时,因为这可能会影响到新的Activity的显示——onPause方法执行完成后,新Activity的onResume方法才会被执行。
onStop:一般onPause方法执行之后会执行此方法,表示activity停止或完全被覆盖,此时activity处于后台不可见也不可与用户交互,在此方法里面也可以进行数据存储和资源释放(同样不能太耗时)。
onRestart:表示activity正在重新启动,也就是当activity由不可见变为可见状态时,该方法被调用。这种情况一般是用户打开一个新的activity,当前activity被停止,然后用户又重新回到当前activity,这是onRestart方法就会被回调。
onRestart:表示activity被销毁,这是activity生命周期中最后一个被执行的方法,因此可以在此方法中执行最后的资源释放和一些回收工作。

三、验证Activity的生命周期

package com.example.administrator.applicationtest;

import andro
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值