android 活动生命,Android 活动生命周期

一、活动生命周期的意义

Activity(活动)是一种可以包含用户界面的组件,主要用于与用户进行交互。也就是说,在用户与界面进行交互之前,必须要进行特定的初始化操作。再者,Android 操作系统是一个多任务(Multi-Task) 的操作系统,用户在听歌的同时也可以打开其他 app。但是每一个程序的开启都会耗费一定的系统资源,当运行的程序过多,系统资源又没有及时的回收,容易导致系统运行变慢甚至不稳定。

为了解决这些问题,Android 引入一个新的机制—生命周期 (Life Cycle) 。Android 应用程序的生命周期是由 Android 框架进行管理的,并不是由应用程序直接控制。每一个应用程序都会产生一个进程,当系统内存不足的时候,会依照优先级进行进程的回收。但是,无论是使用者还是开发者,都没有办法确定哪一个进程会被回收。为了防止数据丢失和其他问题,需要了解生命周期。

二、简介生命周期的七个阶段

Activity 类中定义了七个回调方法,覆盖了活动生命周期的每一个环节。

onCreate() (不可见)每个活动都会重写这个方法,他会在活动第一次被创建的时候调用。在这个方法中完成活动的初始化操作,比如加载布局,绑定事件等。

onStart() (可见)这个方法在活动由不可见变为可见的时候调用,只是活动还没有在前台显示。。

onResume()  (可见)这个方法在活动准备好和用户进行交互的时候调用,并且,当且活动处于返回栈的栈顶(稍后解释何为返回栈的栈顶),并处于运行状态。

onPause() (可见)这个方法在系统准备去启动或恢复另一个活动的时候调用(当前活动还在栈顶)。我们通常在这个方法中释放一些CPU资源并保存一些关键数据,但是,这个方法的执行一定要快,不然会影响到新的栈顶活动的使用。

onStop() (不可见)这个方法活动完全不可见的时候调用,活动仅在后台工作。他和 onPause() 的区别在于,如果新的活动是对话框式的(即没有完全覆盖这个界面),那么只有 onPause() 被调用, onStop() 方法则不会被调用。

onDestory() (不可见)这个方法在活动被销毁之前调用,在这之后活动将处于销毁状态,是生命周期最后执行的方法。

onRestart()  (可见)这个方法在活动由停止(Stop)状态变为运行(Start)状态之前调用,将活动由不可见变为可见,也就是活动被重新启动了。

为了加强理解,我们来做一个类比(建议自己思考)。活动的生命周期可以类比为一个人的生命周期。

onCreate 相当于一个人还在娘胎的阶段,完成必要的初始化工作,此时人还不可见。

onStart 于人出生了,此时他已经可见,但是还没有和这个社会产生互动。

onResume 人开始去工作,和社会产生了关系。

onPause 人由了自己的小孩(新的Activity),此时孩子在他的前面,他的行为孩子的抑制。

onStop 人到了一定岁数之后退休,和社会基本没有联系。

onRestart 人在退休之后,重新上班,回到 Start 状态,即准备和社会产生联系。

onDestory 很容易理解,就是去世。

三、返回(任务)栈。

前面我们讲到调用 onResume 方法的活动处于返回栈的栈顶,什么是返回栈呢?

我们知道,Android 中的活动是可以叠加的,当我们启动一个新的活动时,会将原先的活动覆盖。当我们按 back 键返回或者调用 finish() 方法时,会销毁最上面的活动,然后下面的活动就会显示出来。

其实,Android 是用一个任务(Task)来管理活动的,一个任务就是一组在栈中的任务的集合。这个栈就是返回栈,栈是一种后进先出的数据结构,并且,MainActivity 处于栈的最底端。在默认情况下,启动一个新的活动,他会在返回栈中入栈,并处于栈的栈顶。按 back 键或调用 finish() 方法后,这个活动就会出栈,系统总是会显示处于栈顶的活动。

四、具体讲讲jige 方法

onCreate()完成活动的初始化操作,如加载布局,绑定事件,调用 setContentView() 方法

onStart()

onResume()

onPause()

onStop()

onDesto

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值