关于意图的晚运行时绑定

时间:2013-04-08 12:52:39

标签: android android-intent

我尝试通过开发者论坛进行意图。而且我对此并不了解。 特别是这些行。

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

我对此有几个问题。

  

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

     

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

     

(c)任何人都可以给我一个这个抽象描述的例子   要执行的操作意味着什么?

2 个答案:

答案 0 :(得分:4)

  

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

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

  

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

因为Intents是消息,而的消息是自己工作的,而是指示其他人要做的工作。

  

有人能给我一个例子,说明要执行的操作的抽象描述是什么意思?

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

这里,Intent是一个抽象的描述:我们希望“查看”由http://开头的URI标识的内容。在Android上,任何数量的活动都可以响应此Intent,包括Web浏览器和专门的应用程序,由支持他们的网站的秃顶人员。根据设备,零个,一个或多个活动可以匹配此Intent结构,Android可以处理所有这些情况。

答案 1 :(得分:1)

  

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

我认为这是因为,虽然您可以在intent filters中设置manifest,但它们通常在Java代码中用于在运行时启动新的Activities并在两者之间传递数据Activities

  

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

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

  

有人能给我一个例子,说明要执行的操作的抽象描述是什么意思?

以最简单和最常见的形式使用Intent来启动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

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