Android_Activity生命周期
通过前面一段时间的学习,我们很清楚我们的一系列操作都离不开的一个东西,就是我们的activity 。接下来我们对 Activity 进行系统的总结。
Activity 的四种基本状态
1.运行态(Running)
Activity 处于屏幕最前端,用户可见且获得焦点。
2.暂停态(Paused)
Activity被置于后台,用户可见,但失去焦点
3.停止态(Stopped)
Activity 被新的Activity覆盖失去焦点,用户不可见。
4.终止态(Destroyed)
Activity被系统终止,资源被回收。
Activity 的生命周期
onCreate: 创建Activity 的实例对象的方法
onStart : 启动当前的 Activity 实例的方法
onResume: 如果该方法执行,页面的实例就和用户可以进行交互
onPause: 如果该方法执行,页面就和用户不再交互失去焦点,页面仍旧可见 在内存当中
onStop:页面就和用户完全不可见
onDestroy: 销毁当前的 Activity 的页面实例
onRestart:将至于后台的应用程序的Activity 重新显示在前台的时候被调用
注意:
Activity 的生命周期方法都是成对出现的。onStart----onStop ; OnCreate -----onDestroy ;onResume----onPause
onResume----onPause 方法会比其他的生命周期方法执行的比较频繁,所以一般在这两个方法中写的代码较少
这里是官网总结的activity 运行流程图

接下来,我们还是上代码带大家走一遍,感受下activity 的生命周期。
我们直接创建一个项目,利用logcat 观察他的生命周期。
package com.example.testactivitylife; import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem; public class MainActivity extends Activity { //页面实例被创建的方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("TAG", "onCrate方法被执行"); }
@Override
protected void onStart() {
Log.i("TAG", "onStart方法被执行");
super.onStart();
} @Override
protected void onPause() {
Log.i("TAG", "onPause方法被执行");
super.onPause();
}
@Override
protected void onResume() {
Log.i("TAG", "onResume方法被执行");
super.onResume();
}
@Override
protected void onStop() {
Log.i("TAG", "onStop方法被执行");
super.onStop();
}
@Override
protected void onDestroy() { Log.i("TAG", "onDestroy方法被执行");
super.onDestroy();
}
@Override
protected void onRestart() {
Log.i("TAG", "onRestart方法被执行");
super.onRestart();
}
}






以上就是activity 的整个生命周期。我了解的大概就是这些。后续我们会在实际案例中,将我们的代码合理的放置于我们的方法中,提高我们程序的运行效率等。
如有不适之处,望各位大神提点出来。[微笑]
Android_Activity生命周期的更多相关文章
- android_Activity生命周期功能
说明:初步activity 生命周期7功能. 样本:于MainActivity我加了button,搬家button.跳到OtherActivity.控制台输出的观察. 让我们来看看这些功能: 他们的流 ...
- Android_Activity的生命周期、跳转方式及参数传递、启动模式。
Activity的生命周期: onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy Activity之间的跳转分为显式跳转和隐式跳转 ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)
本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...
- UIViewController生命周期-完整版
一.UIViewController 的生命周期 下面带 (NSObject)的方法是NSObject提供的方法.其他的都是UIViewController 提供的方法. load (NSObje ...
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- Spring中Bean的作用域、生命周期
Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...
- Autofac - 生命周期
实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用 ...
随机推荐
- java @ResponseBody返回值中去掉NULL字段
需要同时添加两个位置: 1.annotation-driven过滤 <mvc:annotation-driven> <mvc:message-converters register- ...
- Python DES 加密解密,就是大家所谓想要的那个非常快速的方法
这个要借助Crypto.Cipher这个插件来实现的,引用后只需要写如下代码即可 from Crypto.Cipher import DES class MyDESCrypt: key = chr(1 ...
- C#接口显示实现在实际开发中的作用
摘要 任何一个C#入门的程序员都知道——当一个类型在实现接口的时候,有两种方法实现:显式实现.隐式实现.而且大家也都知道,当一个类型实现的两个接口存在相同成员定义时,显示实现可以解决这种情况. 但是, ...
- 用户体验学习笔记(工程中发现的PM常犯错误)
清晰呈现 启动和停止 布局 导航 层级式 扁平式 内容/体验主导式 总结 动画 注意点 品牌化 当你需要在 app 中提醒用户品牌的存在时,请遵循以下准则: 以优雅谦逊的方式整合品牌资产.人们使用你的 ...
- Arch Linux LibreOffice 中文输入法不能切换
From: http://blog.csdn.net/shallowgrave/article/details/8501629 卸载libreoffice-kde4 # pacman -R libre ...
- kettle输入“去除空格类型”设置不上
kettle输入“去除空格类型”设置不上,设置完了还是现实“none”的办法: 在xml中直接将对应处“none”改为“both”,即“去掉两边空格”. 原文来自:http://blog.csdn.n ...
- 2.1 ARM家族大检阅
芯片名称 ARM核 指令架构 S3C2440 ARM9 ARMv4T S3C6410 ARM11 ARMv6 S5PV210 Cortex A8 ARMv7-A Cortex M工控 Cortex R ...
- Jmeter组件7. JDBC Connection Configuration & JDBC Request
Jmeter同样可以测试数据库的性能,通过执行增删改查的语句,以下举的是oracle的例子 Step 1: 下载ojdbc14.jar包放到Jmeter lib包中,在test plan中配置,并且重 ...
- ckeditor插件
插件下载地址:http://ckeditor.com/download 1.CKeditor配置 在html页面的<head>标签中引入核心文件 ckeditor.js <scrip ...
- 文本编辑的css常用属性
white-space:pre //保留空格,不然又多个空格值显示一个 white-space:nowrap //强制不换行,知道遇到</br> letter-spacing //字母间的 ...