4.Intent 知识点总结

1.请描述一下Intent和IntentFilter。
    Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,
    还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内容。
    对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。

    通过Intent 可以实现各种系统组件的调用与激活.  
    data/system/package.xml
    Intent filter: 可以理解为邮局或者是一个信笺的分拣系统…
    这个分拣系统通过3个参数来识别
    Action: 动作    view 
    Data: 数据uri   uri 
    Category : 额外的附加信息 
    Action 匹配
    Action 是一个用户定义的字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其 <intent-filter >节点指定一个 Action 列表用于标示 Activity 所能接受的“动作”,例如:
     <intent-filter > 
     <action android:name="android.intent.action.MAIN" /> 
     <action android:name="cn.itcast.action" /> 
    ……
     </intent-filter> 

    如果我们在启动一个 Activity 时使用这样的 Intent 对象:
     Intent intent =new Intent(); 
     intent.setAction("cn.itcast.action"); 

    那么所有的 Action 列表中包含了“cn.itcast”的 Activity 都将会匹配成功。
    Android 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量
    的方式定义在 android.content. Intent中,以“ACTION_”开头。我们可以在 Android 
    提供的文档中找到它们的详细说明。
    URI 数据匹配
    一个 Intent 可以通过 URI 携带外部数据给目标组件。在 <intent-filter >节点中,
    通过 <data/>节点匹配外部数据。
    mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定
    数据的位置、端口、和路径。如下:
     <data android:mimeType="mimeType" android:scheme="scheme" 
     android:host="host" android:port="port" android:path="path"/> 
    电话的uri   tel: 12345 
               http://www.baidu.com
    自己定义的uri  itcast://cn.itcast/person/10

    如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。
    Category 类别匹配
    <intent-filter >节点中可以为组件定义一个 Category 类别列表,当 Intent 中包含这个列表的
    所有项目时 Category 类别匹配才会成功。
    默认是DEFAULT
2.Intent传递数据时,可以传递哪些类型数据?
    (1)一般的基本数据类型  Intent .putextra() intent.getextra();
    (2)数据的uri, intent.setData() intent.getData();

3.说说Activity,Intent,Service是什么关系。
    麦当劳和麦当娜的关系是什么关系?
    这种问题,就讲下activity,讲一下service,说一下 通过intent去激活组件,传递数据.
    说自己项目中有这样一个网络更新的功能,显示界面就用的activity, 后台有个service每隔半小时
    都去访问下服务器获取更新的数据…
    开启服务用的是intent来开启
4、隐式意图  通过指定一组动作或者数据 开启activity
5、显示意图   通过指定具体包名和类名 开启activity  
  总结 
  (1)显示意图更加安全一些 
  (2)开启自己应用的界面用显示意图(不需要配置意图过滤器) 
  (3)隐式意图一般开启系统应用(电话拨号器 短信的发送器等等)的界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值