android核心分析(二)
Intent本质
- Intent是一种数据结构,十分的类似于很多应用中的message,直观的讲,有点类似于一封信。解决了三个问题,从哪里来,到哪里去,需要传递什么信息。有时候可能没有到哪里去的信息,这是一种隐式的方式,可能就向广播,不知道谁需要这个信息,需要的人,请接收。谁会接收?依据是mainifest.xml中的filter标签。fitler就是接收的过滤条件,只要满足条件,就会接收。
- Intent的用法,可以只简单的传递接收者,在这种情况下,可能不需要传递消息。一个例子就是经常看到的startActivity(Intent)的调用。给Activity service发一个请求,start一个Activity,哪一个Activity?请看Intent。复杂一点的用法,可以传递更多的信息,尤其是信息。这些信息需要封装成数据结构,包含在Intent中,接收到Intent的对象,就可以解析出传递过来的信息,依据约定的数据结构。数据结构的定义,详见Intent的定义。
- 程序员比较熟悉的,不同的组件之间传递信息,一种方式是函数调用,另一个方式是消息传递,Intent就是后者。它服务于四个基本的核心类型Activity/Service/Broadcast Intent Receiver/Content Provider之间进行消息传递。