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
android 活动生命,Android 活动生命周期相关推荐
- 【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式
1.0 Android是使用任务(Task)来管理活动的,活动就像栈一样堆放着在一起. 每个活动的生命周期最多可能会有四种状态: 1.1 运行状态 位于栈顶 1.2 暂停状态 不在栈顶但在界面上仍处于 ...
- Android四大基本组件和生命周期的介绍
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...
- Android学习之碎片的生命周期
一.碎片的状态: 1.运行状态:当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态. 2.暂停状态:当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它 ...
- android fragment 覆盖,Android Fragment 替换覆盖生命周期方法详解
FragMent add 与 replace 方法执行试图切换生命周期变化 Activity 生命周期中共有七个方法,Fragment 的生命周期方法 则有11个,一个Fragment 在Activi ...
- Android Application的使用及其生命周期
摘要: 1. Application的使用 2. Application的生命周期 ---------------------------------------------------- 工程代码: ...
- Android教程 -06 Activity的生命周期
本篇播客我们重点介绍下如下知识点: 程序启动原理 Activity生命周期 Activity销毁与创建 视频建议采用超清模式观看, 欢迎点击订阅我的优酷 height="498" ...
- Android笔记之Android基本控件布局与Activity的生命周期
前言 喜欢安卓里千奇百怪的app,酷炫的UI或者好玩的游戏.想知道那些软件是如何做的,为什么我在微博里发一条消息,就能一直存在网上,让别人看到?为什么我点击一个按钮就出现了一个效果,某个功能?为什么滑 ...
- android四大组件之活动组件
android四大组件之活动组件 活动组件的生命周期: 参考地址:https://blog.csdn.net/ttandroid/article/details/80926753 oncreate() ...
- 从0到1学android:四大组件—活动Activity
点击上方"罗晓胜",马上关注,您的支持对我帮助很大 上期文章 从0到1学android:认识Android 逻辑题--特尔斐城的少女 / 前言 / 活动(Activity) ...
- Android基础知识——探究活动
文章目录 1.活动的基本概念 2.活动的基本用法 2.1活动创建的完整流程 2.2在活动中使用Toast 2.3在活动中使用Menu 2.4销毁一个活动 3.使用Intent实现跳转活动 3.1适用显 ...
最新文章
- poj - 1651 Multiplication Puzzle
- 路由器无服务器无响应是怎么回事啊,wifi服务器无响应怎么解决(图文)
- setup hadoop 1.2.1 on Mac
- 用python定义一个员工类_Python:定义一个只有整数定义的类
- ibm aix_IBM AIX:Java进程大小监视
- 搭建IC设计EDA虚拟机服务器,忆往昔--集成门控时钟技术的前世--分离门控时钟技术...
- 计算机术语局部性,【计算机基础】程序的局部性简介
- JAVA WEB框架的错误体系
- kindeditor图片服务器php,kindeditor 粘贴网络图片保存到服务器
- Gartner 2021年IaaS+PaaS能力评估:亚马逊云科技排名第一
- java eventbus 原理_本文为 Android 开源项目实现原理解析 EventBus 部分,从源码分析 EventBus 的实现原理...
- bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果(DP)
- jQuery源码阅读(一)---jQuery源码整体架构
- 按3倍中误差去除粗差(C++)
- 鸡兔同笼c语言编程穷举,C语言程序设计100例之(1):鸡兔同笼
- 偏差-方差分解、损失函数和正则化
- [乐意黎原创]Win10 升级1909版本后,内存占用率居高不下的解决办法
- 助力白纸一般的你面试——宏任务微任务
- Golang操作阿里云OSS上传文件
- vue3项目名称报错
热门文章
- ubuntu18.0安装搜狗输入法无法显示中文
- antd中如何实现分页勾选记住之前的选项
- 微信小程序推广方式有哪些?
- qq邮箱发送html文本,使用qq邮箱发送html格式的邮件
- HTML点击图片播放音乐
- 软件测试怎么自学?史上最全的「软件测试」自学路线图+资源包
- 手机屏幕常见故障_触屏不灵敏、断触怎么回事?手机触摸屏的基本原理与常见问题排查方法介绍...
- javafx 教程_Swing和JavaFX:使用JFXPanel
- 海康摄像头,设置了分辨率参数,保存后又自动恢复,怎么办
- JavaScript实现网页截屏方法总结