Activity是Android系统应用程序中最基本的一种构造块。在应用中一个Activity通常就是一个单独的屏幕。每个Activity都被实现为一个独立的类,并且继承Activity这个基类。这个Activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部分的应用都会包含多个屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每个这样的屏幕就是一个Activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。
当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每个应用的运行屏幕。
Android系统应用程序使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。ntent类用于描述一个应用将会做什么事。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有MAIN(Activity的门户),VIEW,PICK,DIT等。动作对应的数据则以URI的形式进行表示。例如,要查看一个人的联系方式,需要创建一个动作类型为VIEW的Intent,以及一个表示这个人的URI。(www.xing528.com)
与之有关系的一个类叫intent-filter。相对于Intent是一个有效的做某事的请求,intentfilter则用于描述一个Activity(或者Intent Receiver)能够操作哪些Intent。如果Activity要显示一个人的联系方式时,需要声明一个intent-filter,这个intent-filter要知道怎么去处理动作和表示这个人的URI。intent-filter需要在Android Manifest.xml中定义。
通过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,Activity将会调用start Activity(Intent my Intent)方法。然后,系统会在所有安装的应用程序内定义的intent-filter中查找,找到最匹配my Intent的Intent对应的Activity。新的Activity接收到my Intent的通知后,开始运行。当start Activity方法被调用将触发解析my Intent的动作,这个机制提供两个关键好处:①Activities能够重复利用从其他组件中以Intent的形式产生的请求;②Activities可以在任何时候被一个具有相同intent-filter的新的Activity取代。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。