理解:
Activity就是用户能专注执行的单个任务。或者说,是app的单个屏幕,与windows系统的窗体非常相似。
代码意义
Android工程中有activity类,每个带UI的app都需要继承该类以创建窗体。Android工程中的activity是特定的一组XML文件与JAVA文件的组合,基本是一个包含了Design和代码的容器。XML文件负责Design,JAVA则主要是事件处理、设计文件等。二者组合才是完整的activity。
细节:几乎所有Activity需要与用户交互,因此Activity类(Activity Class)需要创建一个窗体来显示UI,UI的配置用setContentView(View)方法。尽管多数Activity是全屏模式,你也可以设计悬浮窗体、多窗体或嵌套窗体,等等。
activity的JAVA部分有两个常用方法:
1. onCreate(Bundle)。用于初始化Activity。此处通常要调用setContentView(int)方法配置UI,用findViewById(int)方法引用控件。
2. onPause()。用户暂停与Acticity的交互时,执行此方法。注意暂停时Activity仍显示。
为了配合Context.startActivity()方法,所有Activity类必须在对应的AndroidManifest.xml文件包含对改Activity的声明。
Activity的生命周期
1. Acitivity由activity栈(activity stacks)托管。
新的Activity开始时置于栈顶,成为运行中activity,而前一个运行的activity置于新activity之下。屏幕上可见的activity可以有一个或多个。
2. Activity的4大关键状态
(1)运行状态或者说活跃状态。此时的activity在屏幕最前,通常也是用户正在交互的activity。
(2)可见状态。此时,用户能看到这个activity,但没有对焦。这样的activity是完全alive的,即,保有全部状态与成员信息,并和窗体管理器连接。
(3)停止或者说隐藏状态。此时的activity被另一个activity隐藏。这样的activity仍保有全部的状态和成员信息,但对用户不可见,窗体隐藏,通常,当内存需要他用时,系统会终止该activity。
(4)被摧毁状态。系统可以关闭activity或摧毁其进程来从内存移除它,从而摧毁该activity。如果需要再次显示该activity,必须完全重新开始,重新进入其原状态。
3. 完整的生命周期
从首次调用onCreate(Bundle)开始,在最后调用onDestroy()结束。onCreate()设置所有的全局状态,onDestroy()释放所有资源占用。
4. 可见生命周期
从调用onStart()开始,在调用onStop()结束。可见生命周期内,用户能看见屏幕上的activity,但它不一定在最前,不一定在和用户交互。在该周期内,保有显示需要的资源。
5. 前置生命周期
从调用onResume()开始,在调用onPause()结束。此周期内activity可见、活跃、正与用户