分享

Intent总结

 风雪夜归人_95 2014-02-12
Intent的作用:
1)启动一个activity      2)发起一个Broadcast     3)启动或绑定一个service
 
Intent的属性:ComponentName、Action(包括自定义和系统)、Data、Category、Extras
1)  Action是一个字符串名称用来表示组件的动作。android系统中定义的Action分为Activity Action
和Broadcast Action。
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.setType("vnd.android.cursor.item/phone"); //调用android联系人列表
2) Data属性是执行动作的URL和MIME类型,不同的Action有不同的Data数据指定。
3)Category属性是执行Action的附加信息。如:CATEGORY_LAUNCHER意味着在加载程序时,Activity出
现在最上面。
4)Extras属性是添加一些组件的附加信息。
5)Intent寻找目标组件的方式分为显示Intent和隐式Intent。前者用在源组件知道目标组件名称的前提
下,一般是在相同应用程序内部实现;后者则用于不同程序之间或不知道目标组件的名称的情况。
在使用IntentFilter进行过滤时Intent通常考虑三个属性是Action、Data和Category。
Intent解析机制主要通过查找已注册在AndrodManifest.xml中所有IntentFilter及其中定义的Intent,
最终找到匹配的Intent。该过程android是通过Intent的上面一条提到的三个属性进行判断。
在AndroidManifest.xml中的<intent-filter>列表中的Action不能为空,否则程序将阻塞。若Intent对
象指定了一个Action属性,Intent对象指定的属性就必须和IntentFilter中的一个匹配,否则无法通过
测试;若Intent对象没有指定Action属性,则自动通过测试。在Intent对象出现的Category属性在
IntentFilter中必须出现,否则无法通过测试。(注意:<category
android:name="android.intent.category.DEFAULT"/>无论什么情况都得有)若Intent对象中没有包括
Data,IntentFilter中也没有包含data则通过测试;若Intent对象包含URI但没有类型,且类型不能从
URI中自动识别,IntentFilter中只包含URI才通过测试;若Intent对象只包含类型不包含URI,
IntentFilter也只能包含类型才通过测试;若Intent对象二者都包含,则IntentFilter都包含才通过测
试。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多