码迷,mamicode.com
首页 > 移动开发 > 详细

Android Intent

时间:2014-09-12 22:04:24      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:android   style   color   io   使用   ar   for   数据   art   

  1.  Intent可以启动Activity,Service,Broadcast,Intent有以下几部分组成:动作,数据,分类,类型,组件,扩展信息,Intent在寻找目标组件时有两种方法:第一通过组件名称直接决定,第二通过Intent Filter过滤指定.

  2. Intent提供了多个重载的方法来携带额外的数据,最终数据都是放在Bundle中:
    • putExtras(Bundle data):向Intent中放入所需要携带的数据包
    • Bundle getExtras():获取Intent所携带的数据包
    • putExtras(String name, XXX value):向Intent中按key-value对的形式存入数据
    • getXxxExtra(String name):从Intent中按key取出指定类型的数据,Xxx:是不同的数据类型,如char,int等

  3. Bundle是一个简单的数据携带包,该对象中包含了多个方法来存入数据
    • putXxx(String key,Xxx data):向Bundle中放入Int,Long等各种类型的数据
    • putSerizlizable(String key,Serializable data):向Bundle中放入一个可序列化的对象
    • getXxx(String key):从Bundle中取出Int,Long等各种类型的数据
    • getSerializable(String key,Serializable data):从Bundle中取出一个可序列化的对象

  4. Action:是Intent要完成的动作,是个字符串常量,可以自定义,Intent.SetAction设置Action,系统有很多自定义Action,一个Intent只能包含一个Action
    • Data:是执行动作的URI和MIME类型,不同的Action有不同的Data数据指定,如在一个Intent中设置Action_View,Data设为www.baidu.com,StartActivity(intent)时就会打开baidu网站.MIME的格式为abc/xyz: 其中abc为数据的大类型,xyz为数据的具体类型
    • Category:一个执行Action的附加信息
    • Extras:添加一些组件的附加信息
    • Type:指定该Data所指定Uri对应的MIME类型,与Data可能会相互覆盖,除非调用Intent的setDataAndType方法
    • Flag: 通常用Activity.launchMode属性替代Flag的作用

  5. 当系统通过Intent启动指定的Activity时,如果系统没有找到合适的Activity,会导致程序异常,但通过Intent激发BroadcastReceiver时,如果找不到合适的BroadcastReceiver组件,应用不会有任何问题

  6. PendingIntent类是一种特殊的Intent,主要区别是Intent是立即执行,而PendingIntent不是立刻执行,pendingintent 执行的操作实际是参数传来的Intent操作,使用pendingintent的目的在于它所包含的Intent的操作的执行时需要满足某些条件的,主要使用的地方有:通知Notification的发送,短信SmsManager的发送和警报器AlarmManager的执行等,Intent与PendingIntent的区别如下:
    • Intent是立即使用的,PendingIntent可以等到事件发生后出发,比如当用户点击了通知栏的nocation的时候才会跳转到 应用的某一个activity,PendingIntent可以cancel
    • Intent在程序结束后终止,pendingIntent在程序结束后依然有效
    • Pending自带Context,而Intent需要再某个Context中运行
    • Intent在原Task中运行,PendingIntent在新的Task中运行
 

Android Intent

标签:android   style   color   io   使用   ar   for   数据   art   

原文地址:http://www.cnblogs.com/phenixyu/p/3969132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!