Intent附加额外信息需要设置隐Intent的哪种属性?

Intent附加额外信息需要设置隐Intent的哪种属性?,第1张

Intent的属性及intent-filter配置:

1、Component属性:

Intent的Component属性需要接受一个ComponentName对象,包含如下几个构造器,通过显示Intent启动一个Activity:

当程序通过Intent的Component属性启动特定组件时,被启动组件几乎不需要用<intent-filter....>元素进行配置

2、Action与Category属性与intent-filter配置

Action与Category属性都是一个普通的字符串,其中Action表示Intent所要完成的一个抽象”动作“,而Category则用于为Action添加额外的附加类别信息。通常Action和Category结合使用。

Action完成的只是一个抽象”动作“,这个动作具体由哪个组件来完成,Action这个字符串本身并不管。这取决于Activity的配置,只要有某个Activity配置文件符合,该Activity就可能被启动。如果有多个Activity都符合,则会d出对话框供用户选择。

Action和Category在Intent中的配置:

注意:一个Intent对象只能有一个Action属性,但一个Intent可以有多个Category属性。且Cateory的默认值为intent.category.DEFAULT常量。Cateory的值可以不指定,就为默认值。

在Activity的Manifest.xml文件中的配置:

3、Data、Type属性与intent-filter配置

Data属性通常用于向Action属性提供 *** 作的数据。Data接受一个Uri对象,Uri对象的格式如下:

Type属性用于指定该Data所指定Uri对应的MIME类型,这种MIME类型只要满足abd/xyz格式的字符串即可。

Data与Type的关系:

1)、如果Intent先设定Data的值,后设置Type的值,那么Type就会覆盖Data属性。

2)、如果Intent先设定Type的值,后设置Data的值,那么Data就会覆盖Type属性。

如果希望同时设定Data和Type的值,就应该调用Intent的setDataAndType()方法。

在Intent中设置Data和Type属性:

在配置文件中设置(都通过<data .../>设置):

4、 Extra属性

Extra属性通常用于在多个Action之间进行数据交换,Intent的Extra属性值应该是一个Bundle对象,它可以存入多个键值对,这样就可以在多个Activity之间进行数据交换了。

5、Flag属性

Intent的Flag属性用于为该Intent添加一些额外的控制旗标,可调用addFlags()方法来为Intent添加控件旗标。

这是为了满足系统启动的需求而设置的。

知识点延伸:

Intent.FLAG是电脑程序中用于记录程序状态的单比特大小的标记。Flag只有1(立起)和0(倒下)两个数值,通常集中存放在内存中固定的区域里。程序在某种状态改变的同时改变flag的值,并在其他 *** 作中通过flag了解状态,并决定接下来的 *** 作。换句话说,flag可以用来帮助程序做复杂条件的判断。

Intent.FLAG的这一特性在游戏中被广泛应用。几乎所有有剧情的游戏中,有选项的,选项影响剧情的游戏,都有Flag变量的运用,都可以说是有Flag,立Flag,比如《金庸群侠传》《仙剑奇侠传》《寂静岭》《美国末日》等。注:FLAG在所有计算机编程中几乎都有重要作用,比如:系统编程,网络编程,软件编程,数控编程等等,在与计算机相关的生产生活中多有运用,而不止运用在游戏编程方面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11333197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存