zoukankan      html  css  js  c++  java
  • 《Android开发艺术探索》读书笔记之IntentFillter的匹配规则

    使用intent启动不同组件的方法

    组件类型 启动方法
    Activity startActivity(Intent intent)
    startActivityForResult(Intent intent,int requestCode)
    Service ComponentName startService(Intent service)
    boolean bindService(Intent service,ServiceConnection conn,int flags)
    BroadcastReceiver sendBroadcast(Intent intent)
    sendBroadcasst(Intetn String receiverPermission)
    sendOrderedBroadcast(Intent intent,String receiverPermission,BroadcastReceiver resultReceiver,Handler scheduler,int initialCode,String initialData,BundleinitialExtras)
    sendOrderedBroadcast(Intent intent,String receiverPermission)
    sendStickyBroadcast(Intent intent)
    sendStickyOrderedBroadcast(Intent intent,BroadcastReceiver resultReceiver,Handler scheduler,,int initialCode,String initialData,BundleinitialExtras)

    IntentFilter过滤信息

    (1)IntentFilter中的过滤信息主要有action,category,data

    (2)一个过滤列表中的action,category,data可以有多个,注意一个Intent对象最多只能包括一个Action属性,但是可以包含多个Category属性,可通过

       Intent.addCategory(String str)来添加Category属性

    (3)一个Activity中可以有多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可成功启动对应的Activity。

    ation匹配规则

    (1)action代表该Intent所要完成的一个抽象“动作”,注意Category则用于为Action添加额外的附加类别信息,两者属性都为字符串,通常结合一起使用。

    (2)action区分大小写,大小写不同的字符串相同的action会匹配失败

    (3)action的匹配要求Intent中的action存在并且必须和过滤规则中的其中一个action相同

    category的匹配规则

    (1)程序创建Intent时,默认启动Category属性值为Intent.CATEGORY_DEFAULT常量

    (2)一个Intent对象最多只能包括一个Action属性,但是可以包含多个Category属性,Category的匹配过程与action不一样,intent中一旦有Category,那么不管有几个

           ,每个都要能够和过滤规则中的任何一个category相同

    data的匹配规则

    (1)data由两部分组成,mimeType和URI

    (2)data属性通常用于向Action属性提供操作的数据,data属性接受一个Uri对象,URI的结构为<scheme>://<host>:<port>/[<path>|<pathPrefix>|<PathPattern>]

            例如:content://com.example.project:8080/folder/subfolder/etc;http:www.baidu.com:80/search/info

    (3)mimeType属性用于指定该Data所指定Uri对应的MIME类型,这种MIME类型可以是任何自定义的MIME类型,只要符合abc/xyz格式的字符串即可

    (4)如果要为Intent指定完整的data,必须通过调用setDataAndType方法,而不能通过调用setData方法再调用setType方法或者调用setType方法再调用setData方法

  • 相关阅读:
    商城02——dubbo框架整合_商品列表查询实现_分页
    商城项目01——工程介绍及搭建
    利用ssm框架做一个客户管理系统
    SpringMVC学习笔记
    spring问题
    Spring学习笔记
    MyBatis学习笔记二
    MyBatis学习笔记
    二分查找与几种排序方法
    配置 spring boot 的 banner (自定义或取消banner)
  • 原文地址:https://www.cnblogs.com/bdsdkrb/p/5892893.html
Copyright © 2011-2022 走看看