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     @Override
14     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     @Override
23     protected void onStart() {
24         super.onStart();
25         System.out.println("这是onStart()");
26         
27     }
28     
29     @Override
30     protected void onResume() {
31         super.onResume();
32         System.out.println("这是onResume()");
33     }
34     
35     @Override
36     protected void onPause() {
37         super.onPause();
38         System.out.println("这是onPause()");
39     }
40     
41     @Override
42     protected void onRestart() {
43         super.onRestart();
44         System.out.println("这是onRestart()");
45     }
46     
47     @Override
48     protected void onStop() {
49         super.onStop();
50         System.out.println("这是onStop()");
51     }
52     
53     @Override
54     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的生命周期

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。