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 显示 ...
随机推荐
- Stack的三种含义
作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...
- FragmentTabHost简单保存状态的方法
private View rootView;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container ...
- OpenCV二值图像孔洞填充的一个简单方法
在Matlab下,使用imfill可以很容易的完成孔洞填充操作,感觉这是一个极为常用的方法,然而不知道为什么OpenCV里面却没有集成这个函数.在网上查了好多关于Opencv下的孔洞填充方法,大部分使 ...
- xv6的作业翻译——作业1 - shell和系统调用
Xv6的lecture LEC 1 Operating systems L1: O/S overview L1:O/S概述 * 6.828 goals 6.828的目标 Understan ...
- [bigdata] kafka基本命令 -- 迁移topic partition到指定的broker
版本 0.9.2 创建topic bin/kafka-topics.sh --create --topic topic_name --partition 6 --replication-factor ...
- iOS - 对UIColor颜色反差
iOS中默认的很多方法可以获得不同种颜色的UIColor对象,但是White和Black等灰度值其实是用灰阶透明度调制 +colorWithWhite:alpha:,这些CGColorRef拥有2个组 ...
- Hibernate(Control)
案例:http://blog.csdn.net/jiuqiyuliang/article/details/39380465 对象关系映射框架,它对JDBC进行了轻量级的对象封装,可以使用对象编程思维来 ...
- jquery toastr弹窗的代码和使用
<link href="toastr.css" rel="stylesheet" type="text/css" /> < ...
- [Java] Maven 建立 Spring MVC 工程
GIT: https://github.com/yangyxd/Maven.SpringMVC.Web 1. 建立 WebApp 工程 下一步: 下一步: 选择 maven-archetype-web ...
- [译]IIS 8.0应用初始化
原文 代码 或者点这 通过IIS 8.0应用初始化特性管理员可以配置IIS为一个网站或多个网站提前执行初始化任务.当应用在初始化期间,可以通过配置先返回一个静态页面知道应用的初始化任务完成. 通过配置 ...