首页 > 代码库 > Android 初识Activity1

Android 初识Activity1

 

  Activity是android的四大组件之一,也是最重要的负责跟用户进行界面交互的组件。当然,现在也有人把Intent(意图)放到里面,称为android五大组件。

这个问题上,Summer认为是个仁者见仁智者见智的问题,这里不进行辩驳。

  

  在android的开发中,很多地方要使用到activity类所定义的方法,常用到的如下:

上面只是总结了几个在activity中设置组件常用到的方法,Activity类还提供了Menu、Service、Intent等操作支持,暂时不列举,以后复习到

的时候会一一列举。下面我们看一下Activity的生命周期的回调函数:

如图:

从Activity被创建到销毁经历了一系列的函数,常用到的有如上图中的这7个回调函数。它们的运行时情况如下:

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

光说很难理解,下面我们举个例子,源码Summer会在最下面贴出来。

 我们先在Activity中声明下面的回调:

 1 package com.newdi.summer.demo11; 2  3 import android.os.Bundle; 4 import android.widget.TextView; 5 import android.app.Activity; 6 /** 7  *  8  * @author Summer     9  *        Activity的生命周期10  */11 public class MainActivity extends Activity {12     13     @Override14     protected void onCreate(Bundle savedInstanceState) {15         super.onCreate(savedInstanceState);16         System.out.println("这是onCreate()");17         //初始化布局18         setContentView(R.layout.activity_main);19         20     }21     22     @Override23     protected void onStart() {24         super.onStart();25         System.out.println("这是onStart()");26         27     }28     29     @Override30     protected void onResume() {31         super.onResume();32         System.out.println("这是onResume()");33     }34     35     @Override36     protected void onPause() {37         super.onPause();38         System.out.println("这是onPause()");39     }40     41     @Override42     protected void onRestart() {43         super.onRestart();44         System.out.println("这是onRestart()");45     }46     47     @Override48     protected void onStop() {49         super.onStop();50         System.out.println("这是onStop()");51     }52     53     @Override54     protected void onDestroy() {55         super.onDestroy();56         System.out.println("这是onDestroy()");57         58     }59     60 }
View Code

 

 我们启动该工程,模拟器或者真机,Summer使用的是真机,总觉得模拟器有些反应迟钝。

启动程序之后,会看到LogCat选项卡中输出如下显示,由此我们可以发现程序启动我们经历了3个回调函数:

之后我们清空log输出,当手机进入黑屏保护阶段的时候触发了如下的回调:(箭头处可清空log输出)

触发此回调的情况不仅如此,当我们按手机的功能键返回桌面的时候,也会触发此回调

 

下面我们看看当我们再回到应用程序的时候会触发什么函数

我们清空log输出,再次进入程序之后发现后台输出这3个回调

 

最后我们退出程序我们再来看看会触发什么回调

好了,到此为止,我们就重现了最上面的线框图的Activity的生命周期

 具体的分析我们放到下一篇

Android 初识Activity1