zoukankan      html  css  js  c++  java
  • android学习五 Intent

    1.Intent是组件间调用的桥梁。
    2.Android系统定义了很多Intent
       http://developer.android.com/guide/components/intents-common.html
    3.Intent
       Intent包括的内容可以有以下一个或多个
    •    操作
    •    数据
    •    extra数据
    •    组件名称
       包含组件名称的Intent叫显示Intent,否则
       叫隐式Intent。显示Intent在做目标活动匹配时会忽略掉除组件名称的其他部分内容。

        new Intent(Intent.ACTION_DIAL)  //操作
        intent.setData(Uri.parse("http://www.google.com")); //数据
        putExtra(String name,...);//extra数据
        intent.setComponent(new ComponentName("com.android.contacts","com.android.contacts.DialContactsEntryActivity"));//组件名称
     
    4.数据是对URI进行解析的结果,可能是http网页,也可能是ContentProvider...这根据数据模式来确定例如:content:,file:等。
       接收的Intent需要通过Intent过滤器来声明是否能处理这种数据模式。
    5.预定义的操作
       http://developer.android.com/guide/topics/manifest/data-element.html
    6.extra数据可以给目标组件提供更多的信息。 extra data通过android.os.Bundle表示,就是键值对的形式,键通常以包名开头,值是任意对象。需要实现android.os.Parcelable接口。
       putExtra方法是复制操作。
    7.使用组件名称直接调用组件。包名和类名需要完全限定。
    8.组件的类别。
       预定义的category
       http://developer.android.com/reference/android/content/Intent.html#CATEGORY_ALTERNATIVE
    9.Intent包括的4部分内容中,如果没有指定组件名称,则为隐式Intent,对于使用隐式Intent来启动其他组件,则对目标组件的确定就是通过剩下3部分综合作用来确定的。
       应用应该在声明文件中编写Intent过滤器,用于android系统确定Intent与应用是否匹配。Intent过滤器的格式
     
         如果设置Intent时设置了data(uri),则数据类型应被设置
       <intent-filter>
              <action android:value="android.intent.action.MAIN" />
              <category android:value="android.intent.category.HOME" />
              <category android:value="android.intent.category.DEFAULT />
              ....
       </intent-filter>
     
       匹配的基本规则:操作(action),类型(category),数据特征(data android:name 和 data andriod.mimeType)必须与过滤器匹配。
       具体的规则:
       操作:过滤器不包含则匹配所有操作,如果包括则必须匹配。
       数据:过滤器没有指定数据特征则不匹配任何包括数据特征的Intent调用,如果包括则必须匹配。
       数据类型 (data android:mimeType):必须匹配。 数据类型的确定有两种方式
                                        a.传入的URI是内容或文件URI,这由ContentProvider或android来确定
                                        b.显示获取intent.getType()。这个需要在客户端构造Intent的时候调用setType(),调用setType就不应该设置URI,因为setType会自动设置。
       数据模式,数据授权,数据路径协同匹配,即最长匹配。
       Intent类别:调用intent中的所有type必须包含在intent过滤器中。调用intent如果没有包含任何类别则当做default类别,所以希望通过隐式Intent调用的组件必须声明DEFAULT类别。
     
     
  • 相关阅读:
    Dynamics AX 2012 R2 配置E-Mail模板
    Dynamics AX 2012 R2 设置E-Mail
    Dynamics AX 2012 R2 为运行失败的批处理任务设置预警
    Dynamics AX 2012 R2 耗尽用户
    Dynamics AX 2012 R2 创建一个专用的批处理服务器
    Dynamics AX 2012 R2 创建一个带有负载均衡的服务器集群
    Dynamics AX 2012 R2 安装额外的AOS
    Dynamics AX 2012 R2 将系统用户账号连接到工作人员记录
    Dynamics AX 2012 R2 从代码中调用SSRS Report
    Dynamics AX 2012 R2 IIS WebSite Unauthorized 401
  • 原文地址:https://www.cnblogs.com/manziluo/p/5800376.html
Copyright © 2011-2022 走看看