Intent

个人博客地址 line_cheng 的专栏 http://blog.csdn.net/nndtdx

首先声明,本人不是一个专门搞android的,对android 也只是了解,能写个helloword的水平。如下内容,如有专业错误,敬请指出并见谅。另外,该处的intent并不是单单的就定位于android的intent通信对象,而是使用该对象的设计思想,以及对其应用的一些扩展思考。


所有内容都只是突然发现这个intent好像很神奇,心里总觉得,这个intent能够带来一些什么改变,具体是什么,却又好像很模糊。


Ok。我想很多人已经基本了解了android中的intent对象了。据我的了解就是,它可以用来执行某个动作,执行动作的同时必然是携带信息的。比如说,我要启动一个activity,或者启动一个服务,打开浏览器,转到某个地址,或者拨打电话等等。Intent翻译过来就是意图的意思。也就是说,根据这个意图就能够执行相应的动作。Intent分为显示意图和隐式意图。那么它与传统的通信行为有什么不同呢?
比如说,在.Windows窗体中,我们要启动一个form,那么就构造一个form,然后传递参数。我们点击了一个按钮,要相应一个行为,那么我们需要传递一个EventArgs 和object sender,很明显,启动一个行为中间传递就是单纯的参数,而intent的设计是将两个对象和msg共同放在了一起,只要有了这个intent就可以了。就向下图一样

传统的通信模型:



Intent通信模型




在从另外一个方面对比,也即从行为上讲,传统的行为模式是,A要使用某种服务,A发现B提供了这种服务,那么A就要向B所要该服务,取到该服务后,在本地调用,这是一个被动服务的过程。而Intent的模式A也要使用服务,分为两种情况,1 他知道B提供这种服务,ok,他向B推送一个通知,告知B:我要使用你的服务,我给你的参数是msg,给我结果吧。也就是启动了一个intent。2. 他不知道谁能提供之中服务,但是他知道 C知道 谁能提供这种服务,ok,他向C 推送消息,构造一个intent,C就帮助完成该intent,并返回该intent的执行结果,究竟是由谁来接收执行该intent,C做出完美的选择,这就像是一个隐式意图。 Intent模式,是一个主动服务的过程。如下图所示


传统模式



Intent模式


Intent模式中的服务方 主动服务以及不负责“取”只负责用的特性使其优势倍增。

这些是对android中intent的一些分析。Google还要在chrome中引入web intent的概念,在网上找了找,相关的东西不多。有的也只是简单的介绍,以及使用,设计理念和思想的介绍没找到。

我想了想,如果,

如果提供一个统一intent的托管平台,无论是本地应用程序(当然是浏览器)还是网络平台(网站),定义统一intent服务类型以及intent msg,以及注册应用等,那么会给应用程序带来的变化是什么呢?

我要在我所有的微博上同步一条信息,那么只需要向网络抛出该信息就可以啦。等等等等

写到最后,发现这些东西很难表达,似有似无,说的不太清楚。或者是视野还太狭隘,最终的落脚点没有达到原本期望的高度,有一些神奇还没有发现。希望有朋友能够指点一二。Thanks very much。

转载请注明 作者 line_cheng 博客地址http://blog.csdn.net/nndtdx

更多相关文章

  1. 浅析android通过jni控制service服务程序的简易流程
  2. Android系统配置数据库注释(settings.db)
  3. Android(安卓)Service AIDL
  4. Android架构分析之使用自定义硬件抽象层(HAL)模块
  5. Android——Activity四种启动模式
  6. android 定位服务
  7. 【安卓笔记】android客户端与服务端交互的三种方式
  8. android手机客户端上传文件,java servlet服务器端接收并保存到服
  9. android 定位服务

随机推荐

  1. 上传文件,那么form中用来接收文件的数据
  2. 使用CSS Floats和边距问题
  3. CSS自定义光标在FF/Chrome中不能工作
  4. 在刷新之后保持选择的选项
  5. HTML5中最看重的理念“语义化”相比HTML
  6. node-webkit解析excel文档
  7. vue学习系列-认识vue.js
  8. 在AppCode中的razor调用HtmlHelper方法和
  9. html5炸金花棋牌开发
  10. HTML5中Canvas与SVG的画图原理比较