Android 明确的意图和采取的行动

Android 明确的意图和采取的行动,android,android-intent,Android,Android Intent,我想知道下面的代码在启动活动时是如何工作的。我不明白系统是如何找出应该执行的操作的。没有为意图指定任何操作。我本以为会有一场势均力敌的行动 Intent i = new Intent(this, ActivityTwo.class); startActivity(i); 我想知道,考虑到我在文档中所读到的内容,如何可能有一个未明确指定的行动的意图: 意向书中的主要信息包括: 操作-要执行的常规操作,如操作视图、操作编辑、操作主视图等 数据-要操作的数据,如联系人数据库中的个人记录,表示为Uri

我想知道下面的代码在启动活动时是如何工作的。我不明白系统是如何找出应该执行的操作的。没有为意图指定任何操作。我本以为会有一场势均力敌的行动

Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
我想知道,考虑到我在文档中所读到的内容,如何可能有一个未明确指定的行动的意图:

意向书中的主要信息包括:

操作-要执行的常规操作,如操作视图、操作编辑、操作主视图等

数据-要操作的数据,如联系人数据库中的个人记录,表示为Uri


我希望这是有意义的。感谢您的帮助。

Android中有两种意图,隐式意图和显式意图

1隐含意图

设置动作、类别和数据类型,并让Android查找符合指定特征的活动,该活动具有具有指定动作、类别和数据类型的意图过滤器

2明确的意图

正如政府所说:

明确的意图是您用来启动特定应用程序的意图 组件,例如应用程序中的特定活动或服务。到 创建明确的意图,定义意图的组件名称 对象所有其他意图属性都是可选的

您可以明确地告诉要打开的活动/服务。因此,系统不需要确定打开哪一个,您已经告诉它打开特定的活动/服务

您在文档中阅读的是一个隐含的意图,这是一个明确的意图:

Intent i = new Intent(this, ActivityTwo.class);

意图类有多个构造函数。 如果检查public IntentContext packageContext类cls的源代码,则会提到以下信息:

为特定组件创建意图。所有其他字段、操作、数据、, *类型,类为null,但稍后可以使用显式 *电话。这提供了一种方便的方法来创建 *用于执行硬编码的类名,而不是依赖 *系统为您找到合适的班级


谢谢你的回复,但从我的理解和意图,应该有一个行动要执行。在隐式意图中,动作是显式的,但对于显式意图则不是。当使用您指定的意图构造函数时,系统如何确定要执行的操作?并非所有意图都应指定操作,在上面指定的文档中,您将看到,在明确意图的情况下,操作/类别和数据是可选的:在您找到关于意图操作的页面中,有关于明确意图的部分。这些通常不包括任何其他信息,简单地说,这是应用程序在用户与应用程序交互时启动各种内部活动的一种方式。