1

我尝试通过开发者论坛了解意图。我对此并没有太多了解。尤其是这几行。

“Android 中的活动是通过称为意图的消息激活的。意图消息传递是一种用于在相同或不同应用程序中的组件之间进行后期运行时绑定的工具。Intent 本身,一个 Intent 对象,是一个被动的数据结构,包含对要执行的操作的抽象描述。”</p>

我对此有几个问题。

(a) 为什么意图消息传递工具被视为组件之间的后期运行时绑定?

(b) 为什么意图数据结构使用“被动”一词?

(c) 谁能给我举个例子,这个对要执行的操作的抽象描述是什么意思?

4

2 回答 2

4

为什么意图消息传递工具被视为组件之间的后期运行时绑定?

因为它不是组件之间的编译时绑定(例如,使用 Java 构造函数)。

为什么意图数据结构使用“被动”一词?

因为Intents是消息,它们本身工作,而是指示其他事情要做的工作。

谁能给我一个例子,这个对要执行的操作的抽象描述意味着什么?

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://commonsware.com")));

在这里,Intent是一个抽象描述:我们想要“查看”由以 开头的 URI 标识的东西http://。在 Android 上,任何数量的活动都可以对此做出响应Intent,包括 Web 浏览器和专门的应用程序,由秃顶的家伙支持他们的网站。根据设备,零个、一个或多个活动可以匹配此Intent结构,Android 可以处理所有这些场景。

于 2013-04-08T13:00:41.463 回答
1

(a) 为什么意图消息传递工具被视为组件之间的后期运行时绑定?

我认为这是因为,虽然您可以intent filters在.manifestActivitiesActivities

(b) 为什么意图数据结构使用“被动”一词?

AnIntent实际上并不是一个动作,而是正如它所说的,一条消息告诉组件该做什么并为其提供数据。

谁能给我一个例子,这个对要执行的操作的抽象描述意味着什么?

在其最简单和最常见的形式中,anIntent像这样用于开始一个Activity

Intent intent = new Intent(MainActivity.this, NextActivity.class);
intent. putExtra("key", value);  // used to send data such as a variable value. "key" is used in NextActivity to retrieve the data, value is the actual variable that you want to send
startActivity(intent);  //starts the NextActivity

我希望这回答了你的问题。

于 2013-04-08T13:00:50.813 回答