android学习笔记——Intent和IntentFilter

来源:互联网 发布:网络侮辱他人 寻衅滋事 编辑:程序博客网 时间:2024/06/05 22:47
安卓的四大组件:
    Activity    Service   BroadcastReceiver   ContentProvider
    Activity、Service、BroadcastReceiver都是通过Intent传递
    Intent作用:程序运行过程中连接两个不同的组件,通过Intent程序可向android传递某种请求,android通过请求的内容选择适当组件来完成请求(比如要打开浏览器之类的)【 android根据Intent请求内容查询各组件注册时声明的IntentFilter找到相关的组件】。组件间可以通过Intent进行数据交换
    使用Intent的好处:
            1、使用同意的Intent封装对不同组件的意图,提供了一致的编程模型
            2、满足程序之启动具有某特征组件而不与该组件强耦合的需求,实现松散耦合
    Intent(意图)分类:    
            1、显示意图:明确跳转的组件【择偶到某人】
            2、隐式意图:只要符合就可以【只有择偶标准】
    Intent的属性:
            1、Component(组件)明确指定需要启动的目标组件
            2、Action【普通字符串】代表Intent要完成的抽象动作
            3、Category(种类)【普通字符串】为Action增加附加类别信息(一些特点)
            4、Data【URI对象】 向Action属性提供操作的数据,例如:Tel:--110【协议 主机号 端口号  路径】
            5、Type【abc_xyz格式字符串】 指定Data所指定的URI对应的MIME类型
            6、Extra【Bundle对象,类似Map存放kye/value】(额外的事物) 用于携带需要交换的数据(在多个组件之间进行数据交换)
            7、Flag  添加控制旗标 通过AddFlags方法添加
            !注意:每一个Intent只能指定一个Action可以指定多个Category
                          Data和Type属性互相覆盖,后设置起效。 可以调用Intent的setDataAndType来设定防止覆盖
     IntentFilter(意图过滤器)  :
            AndroidManifest注册组件时可以添加IntentFilter,然后通过Intent的属性来过滤Intent,捕获到满足条件的组件之后启动这个组件——>隐式意图的原理
0 0