首页 > 代码库 > 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 }
我们启动该工程,模拟器或者真机,Summer使用的是真机,总觉得模拟器有些反应迟钝。
启动程序之后,会看到LogCat选项卡中输出如下显示,由此我们可以发现程序启动我们经历了3个回调函数:
之后我们清空log输出,当手机进入黑屏保护阶段的时候触发了如下的回调:(箭头处可清空log输出)
触发此回调的情况不仅如此,当我们按手机的功能键返回桌面的时候,也会触发此回调
下面我们看看当我们再回到应用程序的时候会触发什么函数
我们清空log输出,再次进入程序之后发现后台输出这3个回调
最后我们退出程序我们再来看看会触发什么回调
好了,到此为止,我们就重现了最上面的线框图的Activity的生命周期
具体的分析我们放到下一篇
Android 初识Activity1