Intent

Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。
Intent可以划分成显式意图和隐式意图。
显式意图:调用Intent.setComponent()或Intent.setClass()方法指定了组件名或类对象的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有调用Intent.setComponent()或Intent.setClass()方法指定组件名或类对象的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。那么Android是怎样寻找到这个最合适的组件呢?记的前面我们在定义活动时,指定了一个intent-filter,Intent Filter(过滤器)其实就是用来匹配隐式Intent的,如果Intent Filter定义的动作、类别、数据(URI和数据类型)与Intent匹配,就会使用Intent Filter所在的组件来处理该Intent。想要接收使用startActivity()方法传递的隐式意图的活动必须在它们的意图过滤器中包含"android.intent.category.DEFAULT"
A、意图配置文件
               <activity android:name=".OtherActivity" android:label="其他意图">
                        <intent-filter>
                                <action android:name="com.tjp.intent.action.other" />
                                <category android:name="android.intent.category.DEFAULT" />  
                                <data android:scheme="content" android:host="www.tjp.com" android:path="/person" android:mimeType="jpg" />
                                <category android:name="android.intent.category.DEFAULT" />
                        </intent-filter>
                </activity>
B、调用隐式意图
                Intent intent=new Intent("com.tjp.intent.action.other");
                intent.setDataAndType(Uri.parse("content://www.tjp.com/person"), "jpg");//设置数据和类型
                startActivity(intent);
posted @ 2011-05-28 00:39  飞鹰小谭  阅读(680)  评论(0编辑  收藏  举报