在android中使用意图

时间:2013-04-24 04:03:41

标签: android android-intent

我是Android新手,目前正在阅读一本名为'Professional.Android.2.Application.Development'的书。 我已经看到了一些开始应用程序开发的代码,我注意到大多数java代码都是由意图组成的。

我想知道为什么我们使用意图而不是事件或服务。

我所知道的意图是它们是要执行的操作的抽象描述。

我也想知道Android中意图的重要性。

任何人都可以向我解释,因为我是新人,有点困惑。

3 个答案:

答案 0 :(得分:5)

什么是意图?

意图基本上是在组件之间传递的消息(例如活动服务,广播接收器 >和内容提供商)。因此,它几乎等同于传递给API调用的参数。 API调用和意图调用组件的方式之间的根本区别是:

  • API调用是基于意图的调用是同步的 异步。
  • API调用是基于intent的调用时的编译时绑定 运行时绑定。

当然,通过使用所谓的显式意图,可以使Intent完全像API调用一样工作,这将在后面解释。但通常情况下,隐含意图是要走的路,这就是这里所解释的。

想要调用另一个组件的组件必须仅表达其“意图才能完成工作。还有任何其他组件存在并声称它可以通过 intent-filters,来完成这项工作,由android平台调用来完成这项工作。这意味着,两个组件都不知道彼此的存在,并且仍然可以一起工作,为最终用户提供所需的结果。

组件之间的这种不可见的连接是通过意图,意图过滤器和android平台的组合来实现的。

这带来了巨大的可能性,如:

  • 在运行时混合或匹配或更确切地插入和播放组件。
  • 使用自定义开发替换内置的Android应用程序 的应用程序。
  • 应用程序内部和跨应用程序的组件级别重用。
  • 如果我可以说,服务方向到最细微的级别。
  • 以下是关于意图的附加说明,几乎是正式的。

intent是要执行的操作的抽象描述。它可以与 startActivity 一起使用,以启动活动,broadcastIntent 将其发送到任何感兴趣的 BroadcastReceiver 组件,以及 startService(Intent) bindService(Intent,ServiceConnection,int)与后台服务进行通信。

Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。意图中的主要信息是:

  • 作用 要执行的一般操作,例如ACTION_VIEW, ACTION_EDIT,ACTION_MAIN等
  • 数据 要操作的数据,例如联系人中的人员记录 数据库,表示为Uri。

在这个数据结构上,android是在你阅读时实现的,以下文档非常有用:

答案 1 :(得分:2)

这样一个基本问题。如果你谷歌它你会得到很多解释与例子。

无论如何Intents用于发布activityUri。简单如果您想在android中从一个页面移动到另一个页面,则应仅使用intent

对于简短的免责声明,请参阅herethis link too

但在此之前提出问题之前,请尝试自行搜索并找到答案。

我希望这会对你有所帮助。

答案 2 :(得分:1)

简而言之,意图允许您从一项活动转移到另一项活动 虽然服务旨在在后台运行以执行长任务。

什么是意图?
请参考here 什么是服务?
请参考here
希望这会有所帮助。