Android应用程序由很多的Activity组成,本例将简单说明Activity的生命周期过程:

new一个Android应用程序,其中先new两个Activity用来演示(FirstActivity、SecondActivity):

FirstActivity:

布局first.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".FirstActivity" >    <Button        android:id="@+id/myButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:text="@string/hello_first" /></RelativeLayout>

对应的FirstActivity.java:

package com.example.activity_04;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class FirstActivity extends Activity {    private Button myBtn;        class BtnClickListener implements OnClickListener{        @Override        public void onClick(View arg0) {            Intent intent=new Intent();            intent.setClass(FirstActivity.this, SecondActivity.class);            FirstActivity.this.startActivity(intent);        }    }        @Override    protected void onCreate(Bundle savedInstanceState) {        System.out.println("FirstActivity ---> onCreate");        super.onCreate(savedInstanceState);        setContentView(R.layout.first);        myBtn=(Button)findViewById(R.id.myButton);        myBtn.setOnClickListener(new BtnClickListener());    }    @Override    protected void onStart() {        System.out.println("FirstActivity ---> onStart");        super.onStart();    }    @Override    protected void onRestart() {        System.out.println("FirstActivity ---> onRestart");        super.onRestart();    }    @Override    protected void onResume() {        System.out.println("FirstActivity ---> onResume");        super.onResume();    }    @Override    protected void onPause() {        System.out.println("FirstActivity ---> onPause");        super.onPause();    }    @Override    protected void onStop() {        System.out.println("FirstActivity ---> onStop");        super.onStop();    }    @Override    protected void onDestroy() {        System.out.println("FirstActivity ---> onDestroy");        super.onDestroy();    }    }

重写了Activity生命周期内的七个重要事件:onCreate、onStart、onResume、onPause、onStop、onRestart、onDestory

在他们被执行时,分别输出"Activity名 ---> 事件名",

同样的方式new一个SecondActivity

布局second.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".SecondActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:text="@string/hello_second" /></RelativeLayout>

对应的SecondActivity.java:

package com.example.activity_04;import android.app.Activity;import android.os.Bundle;public class SecondActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState) {        System.out.println("SecondActivity ---> onCreate");        super.onCreate(savedInstanceState);        setContentView(R.layout.second);    }    @Override    protected void onStart() {        System.out.println("SecondActivity ---> onStart");        super.onStart();    }    @Override    protected void onRestart() {        System.out.println("SecondActivity ---> onRestart");        super.onRestart();    }    @Override    protected void onResume() {        System.out.println("SecondActivity ---> onResume");        super.onResume();    }    @Override    protected void onPause() {        System.out.println("SecondActivity ---> onPause");        super.onPause();    }    @Override    protected void onStop() {        System.out.println("SecondActivity ---> onStop");        super.onStop();    }    @Override    protected void onDestroy() {        System.out.println("SecondActivity ---> onDestroy");        super.onDestroy();    }}

需要观察System.out输出的信息,需要添加输出log的过滤器

1.打开DMMS页:

2.添加一个过滤器

3.输入过滤器想要过滤出的内容:

过滤器过滤出的信息将会被显示在LogCat窗口中

启动Android模拟器,运行一下程序,分别执行以下步骤,观察System.out的输出:

1.启动程序,首先打开的是FirstActivity(之前已在AndroidManifest.xml中配置):

观察输出如下:

2.点击FirstActivity中的Button,切换到SecondActivity:

观察输出如下:

3.点击Android模拟器的返回按钮,跳转回FirstActivity:

观察输出如下:

4.再次点击FirstActivity中的Button,切换到SecondActivity:

观察输出如下:

总结如下:

一个Activity的创建顺序执行:onCreate,onStart,onResume

从FirstActivity启动SecondActivity时,顺序调用:FirstActivity的onPause,然后SecondActivity的onCreate,onStart,onResume,最后是FirstActivity的onStop

七大事件:

onCreate:
  当这个Activity第一次被创建的时候调用,在里面去设置布局文件、或者对按钮绑定监听器等一些静态的操作;

onStart:
  当这个Activity能被看到的时候调用;

onResume:
  当这个Activity能获得用户焦点,用户能操作这个Activity的时候调用;

onPause:
  当要启动另一个Activity时调用,例如当你的程序在运行时,有一个来电,系统调用电话,你的程序被遮挡住时调用,一般在里面写一些保存当前Activity操作数据的代码,以便恢复操作时还原数据;

onStop:
  当这个Activity对用户而言不可见的时候调用,如果上一个Activity调用出来的是一个小的对话块,没能完全遮挡住这个Activity,则不会调用上一个Activity的onStop;

onRestart:
  当一个Activity对用户不可见了以后,但是没有被销毁,再次要显示的时候,就最先调用onRestart,而不需要再调用onCreate;

onDestory:
  销毁Activity,如果你在代码里明确调用了finish方法,则会调用销毁,或者当系统资源不够用的时候,也会自动销毁不可见的Activity,如果再启用已经被销毁的Activity时,需要再调用onCreate;

更多相关文章

  1. Android源码阅读-Filter过滤器
  2. Spring Tool Suits 配置android 开发环境
  3. android listview的创建及行删除操作
  4. android总结整理----Sqlite
  5. 你真的会用Android的Dialog吗?由一个Exception想到的
  6. Android(安卓)封装Okhttp3 + RxJava 工具类(包含下载)
  7. Sqlite3 增删改查操作实例
  8. Ubuntu申请APIkey
  9. Android:UI更新方法一:Handler+View.invalidate+Thread+Runnable

随机推荐

  1. Android常用布局类整理(一)
  2. Android签名机制之---签名验证过程详解
  3. Android中几种图像特效处理的小技巧,比如
  4. android架构师之路——APP外置换肤原理解
  5. Android中利用ViewPager实现视图切换
  6. 解决Android(安卓)Studio连不上Android设
  7. Android(安卓)之 使用MediaPlayer播放音
  8. 诺基亚推出Android平板N1和Z Launcher
  9. Android系列教程之四:Android项目的目录结
  10. Android名词解释之什么是APK文件