通过前面一段时间的学习,我们很清楚我们的一系列操作都离不开的一个东西,就是我们的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生命周期的更多相关文章

  1. android_Activity生命周期功能

    说明:初步activity 生命周期7功能. 样本:于MainActivity我加了button,搬家button.跳到OtherActivity.控制台输出的观察. 让我们来看看这些功能: 他们的流 ...

  2. Android_Activity的生命周期、跳转方式及参数传递、启动模式。

    Activity的生命周期: onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy Activity之间的跳转分为显式跳转和隐式跳转 ...

  3. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  4. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  5. C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)

    本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...

  6. UIViewController生命周期-完整版

    一.UIViewController 的生命周期 下面带 (NSObject)的方法是NSObject提供的方法.其他的都是UIViewController 提供的方法. load   (NSObje ...

  7. angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation

    今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:

  8. Spring中Bean的作用域、生命周期

                                   Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...

  9. Autofac - 生命周期

    实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用 ...

随机推荐

  1. DataTable

    //遍历datatable的方法2009-09-08 10:02方法一: DataTable dt = dataSet.Tables[]; ; i < dt.Rows.Count ; i++) ...

  2. caffe网络模型各层详解(一)

    一:数据层及参数 caffe层次有许多类型,比如Data,Covolution,Pooling,层次之间的数据流动是以blobs的方式进行 首先,我们介绍数据层: 数据层是每个模型的最底层,是模型的入 ...

  3. [ActionScript 3.0] 获取随机颜色

    import flash.display.MovieClip; import flash.geom.ColorTransform; //方法一 var red:Number = Math.random ...

  4. Lucene.net 多条件查询搜索

    最近一直在研究lucene,目的是想让网站实现像搜索引擎那样的搜索,可以快速.准确的帮用户查询出想要的结果.废话不多说,上代码实例: 1.利用BooleanQuery进行多条件搜索(比较灵活)   L ...

  5. HsqlDB Demo

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  6. PHP左、右、内连接

    left join   :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又 ...

  7. WIN7-修改域名

    前言:访问本地项目有如下的几种方式,其中通过修改域名配置文件的方式使用的较少,不过在某些项目中也会使用的到(比如:我曾经参与的一个项目使用到SpringCloud框架,需要将每个微服务注册到,服务控制 ...

  8. org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [41] did not match expected type [java.lang.Integer (n/a)];

    题记:以前记录过一些自己遇到的BUG,这个行为,让我一看报错的提示信息就能定位到问题的所在,后来记得比较多了,好多是重复性的再加上比较忙就没有详细的记录了,今天的工作量比较小,就顺便记录一下,以便以后 ...

  9. Java中的内部类(回调)

    一.内部类的主要作用如下: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据 3. 内部类所 ...

  10. Json 字符串 转换为 DataTable数据集合

    /// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson" ...