Activity详解生命周期(Android)
Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一。
Activity的概念:
Activity它的本质上其实就是一个窗体,如我们打开软件它呈现在你眼前的都只是一个窗体而已。它可以与用户进行交互的基本的图形呈现单元。
不同的是Activity它是没有最小化这种概念的。在Windows平台有最大化的概念,在苹果平台的窗体也是没有最大化的概念,只有调整窗体大小的概念
Activity的三种状态:
我们随便打开一个应用程序

这个时候我们看到的是拨号的这个Activity对吧。(运行状态) 我们点击Home键。

当我们点击回到桌面的时候,拨号的那个Activity就看不到了,这个时候就属于(停止状态)

然后我们长按Home键
那么此时我们后面的那个Activity就是(暂停状态)
Activity生命周期:
那么生命周期呢,我们来打开一个网站Activity生命周期图,接着,我们拿到这张图,我来给你们讲解一下运行流程。

1.第一步呢这个Activitylaunched被启动,被启动之后首先会执行一个onCreate()方法,然后呢执行一个onStart()方法。再之后呢再执行一个onResume()方法,
2.只有在onResume执行之后,Activity才会处于运行状态。之后呢我们可以看到Activityrunning就是另外一个Activity会跑到我们的前面,
3.我们当前的Activity会执行一个onPause()回调方法。再往下呢如果我们的Activity处于不可见的状态,也就是停止状态,会执行一个onStop()这样一个回调方法。
4.如果说一个Activity处于暂停状态和停止状态之后呢,我们往左边看这个流程。如果有其他优先级更高的应用程序,它需要内存的话。我们的操作系统会把我们的Activity杀死掉。此时我们的应用程序也就会完全的被停止,内存被释放。然后供我们一些内存更高的优先级应用程序使用。如果说什么时候用户重新的去导航到我们挡墙Activity的话,那么它会重新的执行我们的onCreate()方法。就是这样的一个流程。
5.那么如果说一个应用程序处于一个暂停状态。比如我们上面的打电话程序。我们长按Home键,然后我们又回来,用户又重新回来我们的拨号页面。它会重新执行我们的方法onResume()方法。
6那么如果一个应用程序处于一个Stop状态。然后用户又重新导航到我们的程序,它会执行一个onStop()方法。在这里我们要注意一点:如果我们的Activity所在的应用程序,没有被销毁的话。从暂停状态重新执行到运行状态会重新执行onRestart()方法。然后再执行onStart(),然后再执行onResume()这样的一个流程。
7.那么onDestroy()这个方法是在什么时候被执行呢? onDestroy()这个方法也就是说在Activity被系统给销毁的时候会执行onDestroy()方法,在onDestroty()方法执行完毕之后,我们的这个应用程序就彻底的被关闭了。
这就是Activity的生命周期了。
Activity详解生命周期(Android)的更多相关文章
- 微信小程序开发之详解生命周期方法
生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...
- ASP.NET运行时详解 生命周期入口分析
说起ASP.NET的生命周期,网上有很多的介绍.之前也看了些这方面的博客,但我感觉很多程序猿像我一样,看的时候似乎明白,一段时间过后又忘了.所以,最近Heavi花了一段时间研究ASP.NET的源代码, ...
- Tomcat源码分析 | 一文详解生命周期机制Lifecycle
目录 什么是Lifecycle? Lifecycle方法 LifecycleBase 增加.删除和获取监听器 init() start() stop() destroy() 模板方法 总结 前言 To ...
- Xamarin android 之Activity详解
序言: 上篇大概的讲解了新建一个android的流程.今天为大家带来的是Activity详解,因为自己在开发过程中就遇到 好几次坑,尴尬. 生命周期 和Java里头一样一样的,如图 图片来源于网上哈, ...
- 详解Android中的四大组件之一:Activity详解
activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...
- Android Small插件化框架解读——Activity注册和生命周期
通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...
- Android活动(Activity)创建及生命周期
Activity是Android的门面,可以与用户进行互动的重要模块,凡是在应用中可以看到的东西,都是放在活动中的. 在学习新的技术时,我喜欢将需要学习的技术与自己懂得技术进行类似比较,而活 ...
- [安卓基础] 009.组件Activity详解
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Activity详解一 配置、启动和关闭activity
先看效果图: Android为我们提供了四种应组件,分别为Activity.Service.Broadcast receivers和Content providers,这些组建也就是我们开发一个And ...
随机推荐
- Socket编程——怎么实现一个服务器多个客户端之间的连接
package coreBookSocket; import java.io.IOException; import java.net.ServerSocket; import java.net. ...
- JDBC数据库访问操作的动态监测 之 Log4JDBC
log4jdbc是一个JDBC驱动器,能够记录SQL日志和SQL执行时间等信息.log4jdbc使用SLF4J(Simple Logging Facade)作为日志系统. 特性: 1.支持JDBC3和 ...
- UIScrollView的封装
UIScrollView的封装 效果 特点 1.用法简单,尺寸大小,随意设置位置 2.可以有多个数据源的数据,可以定制不通的界面(如同上图,一个有文字,一个没有文字) 3.能够实现点击事件 用法 1. ...
- Android Weekly Notes Issue #229
Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...
- Cell右滑 多个编辑选项栏
简单粗暴,一看就能明白 关于右滑cell,能滑出来两个以上的选项栏,可以如下这么做,但是要注意下面的注意事项,就是关于iOS8前后的问题,注释写的很清楚了.可以直接复制到自己的代码里看的会更明白. / ...
- 【代码笔记】iOS-获得富文本设置以后的文字高度
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- ASP.NET伪静态实现
ASP.NET伪静态实现 在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢? 例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index- ...
- Arduino舵机控制
普通舵机有3根线:GND(黑).VCC(红).Signal(黄) 红色的是电源正极,黑色的是电源负极,白色的是信号线.有些舵机线是红棕橘三色,分别对应红黑白. #include <Servo.h ...
- Linux 文件系统分区基础
文件系统就是管理设备,组织文件的一些结构和算法. /boot分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件, 建这个分 区是有必要的,因为目前大多数的PC机要受到BIOS的限制,况且如果 ...
- THINKPHP源码学习--------验证码类
TP3.2验证码类的理解 今天在学习中用到了THINKPHP验证码,为了了解究竟,就开始阅读TP验证码的源码. 源码位置:./ThinkPHP/Library/Think/Verify.class.p ...