我想知道以下代码是如何工作的(它启动了一个活动)。我不知道系统如何确定应该执行的操作是什么。没有为Intent指定任何操作。我本以期待一个set_action。
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
我想知道考虑到我在文档中读到的内容,怎么可能有一个Intent哪个动作没有明确指定:
意图中的主要信息是:
action - 要执行的一般操作,例如ACTION_VIEW,ACTION_EDIT,ACTION_MAIN等。
数据 - 要操作的数据,例如联系人数据库中的人员记录,表示为Uri。
我希望它有意义。谢谢你的帮助。
答案 0 :(得分:1)
Android中有两种类型的意图,隐式意图和显式意图。
1)隐含意图
您可以设置操作,类别和数据类型,让Android查找符合指定特征的活动(具有指定操作,类别和数据类型的意图过滤器)。
2)明确意图
正如observed array mutation methods所说:
显式意图是您用于启动特定应用的意图 组件,例如您应用中的特定活动或服务。至 创建显式意图,定义Intent的组件名称 object-所有其他intent属性都是可选的。
您可以告诉明确打开哪个活动/服务。因此,系统无需确定要打开哪一个,您已经告诉它打开特定的活动/服务。
你在文档中读到的那个是一个隐含的意图,这是明确的意图:
Intent i = new Intent(this, ActivityTwo.class);
答案 1 :(得分:0)
Intent类有多个构造函数。 如果检查公共Intent(Context packageContext,Class cls)的源代码,则会提到以下信息:
为特定组件创建意图。所有其他领域(行动,数据, * type,class)为null,尽管稍后可以使用explicit进行修改 *电话。这提供了一种创建意图的便捷方式 *旨在执行硬编码的类名,而不是依赖于 *系统为您找到合适的课程;