在android上开发应用的人都知道,应用的开发在android系统上是多么的方便,因为android就像是一个机器人,身上的每一个零件都好像是独立的,而且有些零件是可以多次使用的,这样既节省了劳力也节省了成本,开发速度上和质量上是没得说的。
一个应用由四大组件中的部分或全部组成,而其中有一个很重要的组件也是不可或缺的一个组件就是activity。这个组件和其它的组件一样具有开放性,独立性,灵活性以及安全性。
一个应用中可以包含很多的activity,activity类定义了它所能做的工作,包括任务的切换,activity运行的进程等。
在manifest.xml文件中有activity元素的定义,在此文件中,它通过<intentfilter>子元素用来给系统声明自己所能做的工作,就像是在系统中的intent中注册了一样,可以供其他的应用或activity来通过该intent来调用。
例如:一个用于编辑短信正文的文本编辑器activity 通过AndroidManifest.xml文件中的<intentfilter>元素告诉了系统,表明activity具有EDIT 和VIEW文本数据的能力,如果有另一个应用或activity要求EDIT和VIEW一段文本数据,则系统可以调用本activity 予以满足。
也就是说这个activity一方面供自己实用,另一方面通过intent方式可以为其他组件或应用提供服务。
一个activity就是窗口上的一个焦点,也是一个显示界面,不一定是全屏的,例如:一个小的dialog也可以定义成一个activity,虽然它的上一个activity的显示被它压在了下面,但是只是占据了屏幕的焦点并没有完全覆盖上一个activity。
可以同时打开多个activity,这些activity会依次压入堆栈而暂时不消亡,当最上面的activity生命结束的时候,它下面的activity就会显示出来,这样做就是为了不用每次都加载一次activity,不仅节省了时间,还节省了资源消耗。为了便于几个管理,如果不想保留压在下面的几个activity还可以通过设置manifest.xml文件中的activity元素的属性noHistory等来达到此目的。
当然activity是有生命周期的:
- public class MyActivity extends Activity {
- protected void onCreate(Bundle savedInstanceState);
- protected void onStart();
- protected void onResume();
- protected void onPause();
- protected void onStop();
- protected void onDestroy();
- }
这是一个activity从创建到销毁的过程,一般在开发的时候要十分注意,以节省资源消耗。