Android平台下应用程序分组管理软件设计与实现(8)
时间:2017-02-13 19:00 来源:毕业论文 作者:毕业论文 点击:次
类别:被执行动作的附加信息。例如LAUNCHER_CATEGORY表示意图的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVECATEGORY表示当前的意图是一系列的可选动作中的一个,这些动作可以在同一个数据上执行。 数据类型:显式指定意图的数据类型。一般意图的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用指定的类型。 组件:指定意图的目标组件的类名称。通常Android会根据意图中包含的其它属性的信息,比如动作、数据/数据类型、类别进行查找,最终找到一个与之匹配的目标组件。 附加信息:是其它所有附加信息的集合。使用附加信息可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在附加信息里,传给电子邮件发送组件。总之,动作、数据/数据类型、类别和附加信息一起形成了一种语言。这种语言使系统能够理解诸如“查看某联系人的详细信息”之类的短语。随着应用不断的加入到系统中,它们可以添加新的动作、数据/数据类型和类别来扩展这种语言。应用也可以提供自己的活动来处理已经存在的这样的“短语”,从而改变这些“短语”的行为。 4.3.2 Android如何解析Intent 在应用中,可以以两种形式来使用Intent: (l)直接意图:指定了组件属性的意图。通过指定具体的组件类,通知应用启动对应的组件。 (2)间接意图:没有指定组件属性的意图。这些意图需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此意图的组件。对于直接意图, Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接意图,通过解析,将意图映射给可以处理此意图的活动、意图接收器或服务。 意图解析机制主要是通过查找己注册在AndroidManifest.xml中的所有意图过滤器及其中定义的意图,最终找到匹配的意图。在这个解析过程中,Android是通过意图的动作、数据类型、类别这三个属性来进行判断的,判断方法如下: 如果意图指明定了动作,则目标组件的意图过滤器的动作列表中就必须包含有这个动作,否则不能匹配。 如果意图没有提供数据类型,系统将从数据中得到数据类型。和动作一样,目标组件的数据类型列表中必须包含意图的数据类型,否则不能匹配。 如果意图中的数据不是content:类型的URI,而且意图也没有明确指定它的数据类型,将根据意图中数据的格式(比如http:或者mailto:)进行匹配。同上,意图的格式必须出现在目标组件的格式列表中。 如果意图指定了一个或多个类别,这些类别必须全部出现在组建的类别列表中。比如意图中包含了两个类别: LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目标组件必须至少包含这两个类别。 4.4 Android活动的生命周期 Activity:它是Android应用层开发的四大组件之一,主要负责和用户交互部分,有自己的生命周期,一般通过View来实现应用程序的用户界面,在其上可以布置按钮,文本框等各种控件,简单来说就是Android的UI部分。 4.4.1 Activity的四种状态 (1)Active/Runin一个新Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。 (2)Paused 当Activi被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续文护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。 (责任编辑:qin) |