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 }
我们启动该工程,模拟器或者真机,Summer使用的是真机,总觉得模拟器有些反应迟钝。
启动程序之后,会看到LogCat选项卡中输出如下显示,由此我们可以发现程序启动我们经历了3个回调函数:
之后我们清空log输出,当手机进入黑屏保护阶段的时候触发了如下的回调:(箭头处可清空log输出)
触发此回调的情况不仅如此,当我们按手机的功能键返回桌面的时候,也会触发此回调
下面我们看看当我们再回到应用程序的时候会触发什么函数
我们清空log输出,再次进入程序之后发现后台输出这3个回调
最后我们退出程序我们再来看看会触发什么回调
好了,到此为止,我们就重现了最上面的线框图的Activity的生命周期
具体的分析我们放到下一篇
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。