Activity系列讲解---三大基本状态与七大生命周期函数
简介:四大组件之一,在应用中一个Activity可以用来表示一个界面,可以理解为用户可视化界面,一个android应用必须通过Activity来运行和启动。
1.三大基本状态与七大生命周期函数
![]() |
![]() |
2.代码实现---LifeCycleActivity.class
/**
* Activity的三个状态和七大生命周期方法分析
*
*/
public class LifeCycleActivity extends AppCompatActivity { /**
* Activity创建时第一个调用的方法,通常我们在该方法中加载布局文件,初始化UI组件,事件注册等等
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_life_cycle);
System.out.println("Activity---->onCreate");
} /**
* 在onCreate()之后调用,用于显示界面,但用户还不能进行交互
*/
@Override
protected void onStart() {
super.onStart();
System.out.println("Activity---->onStart");
}
/**
* 在onStart()之后调用,该方法执行完成后,用户可以进行交互,当前Activity进入Resumed状态
* 当一个paused状态的activity被重新返回时,会再次调用该方法,让activity进入运行状态
*/ @Override
protected void onResume() {
super.onResume();
System.out.println("Activity---->onResume");
} /**
* 当其它activity(透明或窗口模式)进入时,会被调用,让当前activity进入paused状态(暂停状态)
* 当前activity还可见但不可交互,如果其它更高优先级的APP需要内存时,当前activity可能会被销毁(kill)
* 当前activity被返回时会调用onResume()
*/
@Override
protected void onPause() {
super.onPause();
System.out.println("Activity---->onPause");
} /**
* 当其它activity完全覆盖该activity时,会被调用,当前activity进入stop状态(停止状态)
* 当前activity不可见,如果其它更高优先级的APP需要内存时,当前activity可能会被销毁(kill)
* 当前activity被返回时会调用onRestart()
*/
@Override
protected void onStop() {
super.onStop();
System.out.println("Activity---->onStop");
} /**
* 当一个stopped状态的activity被返回时调用,之后再调用onResume方法进入运行状态
*/
@Override
protected void onRestart() {
super.onRestart();
System.out.println("Activity---->onCreate");
} /**
* 当前activity被销毁时调用,通常在该方法中用来释放资源
*/
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("Activity---->onDestory");
} }
3.运行结果分析:
(1)当启动actvity时,会调用onCreate()-->onStart()-->OnResume()
(2)当按Home键或者锁屏键时,会调用OnPause()-->OnStop()
(3)当按退出键时,会调用OnPause()-->OnStop()-->OnDestory()
(4)当解开锁屏时,会调用OnRestart()-->OnStart()-->OnResume()
Activity系列讲解---三大基本状态与七大生命周期函数的更多相关文章
- Activity系列讲解---返回结果的处理
设想一下:由当前Activity跳转到其它Activity,从其它Activity再返回到当前Activity时,如何获取其它Activity存放的数据?下面用一个例子讲解, 点击selsect按钮跳 ...
- Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置
Android内置了方向感应器的支持.Android会根据所处的方向自动在竖屏与横屏间切换.但是有的应用程序只能在横/竖屏时运行,比如某些游戏,此时我们要锁定该Activity运行时的屏幕方向,< ...
- Activity系列讲解---数据传递
在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...
- Android之Activity系列总结(一)--Activity概览
Activity 本文内容 创建 Activity 实现用户界面 在清单文件中声明 Activity 启动 Activity 启动 Activity 以获得结果 结束 Activity 管理 Acti ...
- Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解
前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activ ...
- Android之Activity系列总结(三)--Activity的四种启动模式
一.返回栈简介 任务是指在执行特定作业时与用户交互的一系列 Activity. 这些 Activity 按照各自的打开顺序排列在堆栈(即返回栈,也叫任务栈)中. 首先介绍一下任务栈: (1)程序打开时 ...
- Activity学习(一)——状态转变
(转自:http://blog.csdn.net/flowingflying/article/details/6415323) Android很大的应用场景是手机,有一些应用具有特别的优先级别,例如电 ...
- c/c++ llinux epoll系列5 解除epoll_wait状态
linux epoll系列5 解除epoll_wait状态 有时候会有解除epoll_wait状态的需求. 实现方法: 1,给执行epoll_wait的程序发signal. 2,使用sockpair. ...
- Android之Activity系列总结(二)--任务和返回栈
任务和返回栈 应用通常包含多个 Activity.每个 Activity 均应围绕用户可以执行的特定操作设计,并且能够启动其他 Activity. 例如,电子邮件应用可能有一个 Activity 显示 ...
随机推荐
- mysql函数大全
对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql& ...
- 记录rewrite url我之前不知道的地方
大部分url重写的需求是伪静态,当然有很多第三方开源组件,但是这种需求的核心方法其实就是context.rewritePath() 要是系统像ARR那样,用重写做代理和反向代理,一般的重写就不行了,c ...
- VS2015中SharedProject与可移植类库(PCL)项目
转自:http://www.tuicool.com/articles/beaMZv3 今天闲里偷空看了点Connect大会的视频,C# 6.0的新语法.EF7的支持非关系型数据库.Windows商店应 ...
- 用Redis实现分布式锁
Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists.这系列的命令非常有用,这里讲使用SETNX来实现分布式锁 ...
- 2 云计算系列之KVM的安装与使用
preface 在上篇博客中,我们讲了云的概念,分类,以及虚拟化技术.我们知道Openstack的虚拟化技术是基于KVM的,所以下面就开始说说如何部署和使用KVM. 下面的讲解包含以下知识点: 安装K ...
- Smarty模版引擎的原理
Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...
- 使用MyEclipse 9.0 创建 struts2 的HelloWorld 工程
作为眼高手低的典范,必须痛改前非,好好动手多做开发! 本文是struts2的入门指导,权当笔记! 在MyEclipse中,配置Apache tomcat 7.x 服务器 创建新的Web project ...
- HTTPS 双向认证构建移动设备安全体系
HTTPS 双向认证构建移动设备安全体系 对于一些高安全性要求的企业内项目,我们有时希望能够对客户端进行验证.这个时候我们可以使用Https的双向认证机制来实现这个功能. 单向认证:保证server是 ...
- 关于java中自增,自减,和拓展运算符的小讨论
java中运算符很多,但是能深入讨论的不算太多.这里我仅仅以++,*=为例做讨论. 例:++ i=0; i=i++ + ++i;//i=1 i=++i+i++;//i=2 i=i++ -++i;//i ...
- oracle DML(数据管理语言)sql 基本语句