Android中的意图的概念?

我不是很了解意图的使用和概念。 我明白,一个活动是一个可视界面,一个用户可以参与的努力。我认为一个意图是用来发起和不同活动之间的沟通。 如果是这样,那么你将如何做到这一点? 代码示例会很有帮助。 以类比的forms,试图比较一个意图,在日常生活中的东西。 这将非常有帮助!

Solutions Collecting From Web of "Android中的意图的概念?"

一个Intent可以用来启动活动,通过提供一个动作和一些数据。 使用Intent操作查看网页的示例:

 Intent myIntent = new Intent(Intent.VIEW_ACTION, Uri.parse("http://www.google.com")); 

行动是Intent.VIEW_ACTION ,而数据string是Google网站的Uri

常见任务以及如何在Android中执行这些任务

我曾经尝试过,但很难将Intent与日常生活中的某些东西进行比较。 如果我想出点什么,我会用我的答案记下来。

引用API文档 , Intent基本上是一个被动数据结构 ,它包含一个要执行的操作的抽象描述,包含两个主要的信息,操作和数据。

在最基本的层面上, Intent可以被看作是一个你可以告诉Android调用的动作,而发生什么取决于为那个动作注册了什么。

Intent的动作部分是string或string常量,数据部分是表示URI的string。 除了这些主要属性之外,还可以通过额外的属性添加新的属性,这只是键值对的映射。

有关更多信息,请参阅意图和意图filter , 意图类或玩意向 。

我也推荐“ Pro Android ”一书,详细介绍了这些API的细节。 有一个更新的版本称为Pro Android 2(还没有读过)。

如果您searchGoogle Books ,可以看到本书的摘录,请参阅第3章“使用资源,内容提供者和意图”以获取更多信息。

我发现意图很熟悉,尤其是在应用程序集成方面的一些经验。 intents基本上是消息,而Android intent / activity对是一个基于消息的架构,它使用单播和多播,保证传递(我相信)的asynchronous消息,但不保证sorting。

基于消息交互的美妙之处在于,在代码依赖关系方面(他们只需要了解共享意图types及其有效载荷)就可以将活动彼此分离,并且就其生命周期而言(Android是我自由理解的在消息交易中停止和恢复任何一方)。 这使得更容易维护和修改活动,重用现有活动,并允许有效利用资源。

意图本质上是一种应用程序声明需求的方式 。 这些工作与IntentFilters一起工作,基本上是另一个Activity或Service可以为任何需要它的人所能做的function的声明。

意图通常由两部分构成:一种信息types和一个数据部分,通常是一个URI(想一个网站,GPS数据,或拨打联系人)。

要使用一个意图,你必须创build你的意图与这种types的信息和数据,然后调度到另一个活动,一个服务或广播接收器,然后通常绑定意图,并执行某种你所要求的行动。

Android API详细介绍了如何构build您自己的IntentFilters和Receiver的具体细节。 在那里寻找更多的信息。

假设你的朋友被关在两间屋子里,没有门,也没有屋顶,你要给他一些他需要的东西。 所以你所做的就是把它放在你房间的共同墙壁上,以便他可以从另一边拿走那个东西。 可能你会转储一些onfo的意图(在某些活动),这是全球性的,并从另一端(在下一个活动)的信息。

简单的现实世界的例子,根据我的理解,发送邮件的传统方式,即邮政服务,你有一个信封上的发信人和收件人签名(封面和邮票可以认为上下文 – 如果我没有错),和里面的实际信件可以认为是数据,邮递员所携带的全部信件(封面+实际信件数据)意图和邮递员是OS:)希望这个提供一些想法。

你说得对,是在应用程序之间启动和通信。

http://developer.android.com/guide/topics/fundamentals.html

这有意图的基础。 如果您需要返回值,则需要使用.startActivityForResult()而不是startActivity(),并且在返回值时要使用onActivityResult(Intent intent)方法充当监听器。

构造函数需要2个部分。 首先是一个int,它将在Intent类中成为一个常量,告诉系统你想要对数据做什么。 第二个将是一个在活动之间传递数据的URI。 系统然后使用它们来决定将它放入活动请求时应传递给哪个App。 至于你的比喻,我不知道,那有点困难,没有什么比这更像。 我想最接近你会得到的东西给你的老板,告诉他你需要别人去做一些你不能做的事情。

开发指南中的应用基础将意图定义为“asynchronous消息”。

也许为了更好地理解它们与“消息”的区别,可以将它们与Microsoft Windows世界中的WM_COMMAND消息进行比较,因为根据定义,它们应该启动一个动作(而不是仅传递信息)。