一,Demo測试Activity的生命周期

写两个Activity:

package com.example.activity_04;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class FirstActivity extends Activity { private Button myButton=null; @Override
protected void onCreate(Bundle savedInstanceState) {
System.out.println("firstActivity-->onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
myButton=(Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new BtnClick()); } class BtnClick implements OnClickListener{ @Override
public void onClick(View arg0) {
// TODO 自己主动生成的方法存根
Intent intent=new Intent();
intent.setClass(FirstActivity.this,SecondActivity.class );
FirstActivity.this.startActivity(intent);
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.first, menu);
return true;
} @Override
protected void onRestart() {
// TODO 自己主动生成的方法存根
System.out.println("firstActivity-->onRestart");
super.onRestart();
} @Override
protected void onDestroy() {
// TODO 自己主动生成的方法存根
System.out.println("firstActivity-->onDestroy");
super.onDestroy();
} @Override
protected void onPause() {
// TODO 自己主动生成的方法存根
System.out.println("firstActivity-->onPause");
super.onPause();
} @Override
protected void onResume() {
// TODO 自己主动生成的方法存根
System.out.println("firstActivity-->onResume");
super.onResume();
} @Override
protected void onStart() {
// TODO 自己主动生成的方法存根
System.out.println("firstActivity-->onStart");
super.onStart();
} @Override
protected void onStop() {
// TODO 自己主动生成的方法存根
System.out.println("firstActivity-->onStop");
super.onStop();
} }

package com.example.activity_04;

import android.app.Activity;
import android.os.Bundle; public class SecondActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onCreate");
super.onCreate(savedInstanceState);
} @Override
protected void onDestroy() {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onDestroy");
super.onDestroy();
} @Override
protected void onPause() {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onPause");
super.onPause();
} @Override
protected void onRestart() {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onRestart");
super.onRestart();
} @Override
protected void onResume() {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onResume");
super.onResume();
} @Override
protected void onStart() {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onStart");
super.onStart();
} @Override
protected void onStop() {
// TODO 自己主动生成的方法存根
System.out.println("SecondActivity--->onStop");
super.onStop();
} }

然后启动程序,如图:

能够看到第一个Activity以此被调用的方法。

onCreate

OnStart

OnResume

第一次创建时调用,能够配置使用的layout文件

当Activity能被我们看到的时候

当Activity能够获得用户焦点的时候被调用

之后点击第一个Activiyt上的button,跳转到第二个Activity:

发现第一个Activity的OnPause方法被调用,接着是初始化一个新的Activity被调用的方法,当第二个Activity出现之后,第一个Activity的OnStop方法被调用。

OnPause

OnStop

应用程序启动另外一个activity的时候,会调用第一个activity的OnPause方法

:通常保存当前Activity的数据

当Activity处于不可见的时候会调用第一个activity的Onstop方法,假设新出来的activity不全然遮挡住第一个activity,则不会调用

接着点击backbutton,

注意这里第一个Activity起来之后先调用的是OnRestart方法。

OnDestory

OnRestart

销毁Activity

一般两种情况会调用这种方法:

1,调用activity的finish方法

2,当系统资源不够用的时候

又一次调用paused activity

小结:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

Activity调用的生命周期感觉相似.NET里面页面生命周期。感觉比那个简单点儿。

Android——Activity的生命周期的更多相关文章

  1. Android Activity的生命周期简单总结

    Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...

  2. Android Activity的生命周期

    一.为什么要了解Activity的生命周期 activity is directly affected by its association withother activities, its tas ...

  3. Android Activity的生命周期详解

    应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最 ...

  4. 4、Android Activity的生命周期 Activity的生命周期

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV4aWt1b18x/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  5. Android Activity的生命周期的几个方法介绍

    onCreate():创建Activity调用,用于Activity的初始化,还有个Bundle类型的参数,可以访问以前存储的状态. onStart():Activity在屏幕上对用户可见时调用 on ...

  6. android activity的生命周期和启动模式

    activity是android开发的基本中的基本每一个项目都会有activity.activity有自己的生命周期,在网上有很多博客和资料,在这里我也只是印证一下. 一个activity: 在打开a ...

  7. Android -- Activity的生命周期,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance

    1. 示例图 . 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环:  Activity的完整生命周期自第一次调用onCreate()开始,直至调 ...

  8. [android] Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化

    生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle ...

  9. Android Activity Fragment 生命周期

    从开源项目中看到 这个,就情不自禁的收藏了~ https://github.com/xxv/android-lifecycle

随机推荐

  1. Tomcat学习笔记(八)

    Tomcat载入器(二) Tomcat拥有不同的自定义类加载器,以实现对各种资源库的控制. 1.同一个web服务器里,各个web项目之间各自使用的java类库要互相隔离.  2.同一个web服务器里, ...

  2. AtCoder Regular Contest 093 E: Bichrome Spanning Tree(生成树)

    Bichrome Spanning Tree 题意: 给出一个n个点,m条边的无向连通图,现在要给每条边染色,可以染成黑色或者白色. 现在要求在染色完毕后,找出一个至少包含一条黑边和一条白边的最小生成 ...

  3. 牛客小白月赛4——H-相邻的糖果

    链接:https://www.nowcoder.com/acm/contest/134/H来源:牛客网 题目描述 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择 ...

  4. Topcoder SRM 602 div1题解

    打卡- Easy(250pts): 题目大意:rating2200及以上和2200以下的颜色是不一样的(我就是属于那个颜色比较菜的),有个人初始rating为X,然后每一场比赛他的rating如果增加 ...

  5. 创建型设计模式之原型模式(Prototype)

    结构   意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 适用性 当要实例化的类是在运行时刻指定时,例如,通过动态装载:或者 为了避免创建一个与产品类层次平行的工厂类层次时:或 ...

  6. 结构型设计模式之桥接模式(Bridge)

    结构 意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 适用性 你不希望在抽象和它的实现部分之间有一个固定的绑定关系.例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换. ...

  7. 调用SMTP发送有附件的邮件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. [ CodeVS冲杯之路 ] P1010

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1010/ 首先我们将坐标都+1,因为它是从(0,0)开始的 预处理出禁区,也就是马能到达的格子和马自己的格子,标上记号 ...

  9. flexigrid 学习总结

    最近看到了一款flexigrid表格组件,简单美观,在下载使用的过程中,发现缺少很多功能.<基于jQuery的GridView-Flexigrid(2)-扩展和修复>给我带来了很大的帮助, ...

  10. 转 C++中的static关键字

    C++中的static关键字 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作 ...