- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android Intent
Android Intent
南工院移动开发工作室
Intent简介
Intent是一种消息传递机制。
通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。
Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的。
1.1 要激活一个新的Activity,或者让一个现有的Activity做新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。?
1.2 要启动一个新的Service,或者向一个已有的Service传递新的指令,调用Context.startService()方法或者调用Context.bindService()方法将调用此方法的上下文对象与Service绑定。
1.3 Context.sendBroadcast()、Context.sendOrderBroadcast()、Context.sendStickBroadcast()这三个方法可以发送Broadcast Intent。发送之后,所有已注册的并且拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。
Intent描述的基本内容
Intent对象抽象地描述了要执行的操作,其描述的基本内容可以分为:
组件名称
Action
Action描述Intent所触发动作名字的字符串。系统对常见的Activity和Broadcast进行了定义。例如:ACTION_CALL、ACTION_TIME_TICK等
Data
Data描述Intent要操作的数据URI和数据类型。例如对于ACTION_CALL,对应的数据可以是tel://格式的电话号码URI。
Category
Category是对被请求组件的额外描述信息。
Extra
Flag
解析Intent
显式Intent和隐式Intent
显式Intent明确指出了目标组件的名称,相反没有给出目标组件名称的Intent都为隐式Intent。
在Android系统中,使用IntentFilter来找寻与隐式Intent相关的对象。
显式Intent方便,但是对于开发者而言,有的时候并不能明确目标组件的名称,所以必须通过隐式Intent来查找,而对于内部组件来说,显式Intent要更为方便。
隐式Intent的匹配
实现过程:
Android将Intent的请求内容和IntentFilter的过滤器进行比较,IntentFilter中包含系统中所有可能的待选组件。
如果IntentFilter中某一组件匹配隐式Intent请求内容,那么Android就该组件作为目标组件。
Android只选用Action、Data和Category作为参考因素,Extra和Flag并不起作用
PendingIntent
PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的intent,而是在外部执行 pendingintent时,调用intent的。
PendingIntent可以看作是对Intent的包装。PendingIntent主要持有的信息是它所包装的Intent和当前Application的Context。正由于PendingIntent中保存有当前Application的Context,使它赋予带他程序一种执行的Intent的能力,就算在执行时当前Application已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent。
//获取通知管理器
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)
int icon = android.R.drawable.stat_notify_chat;
long when = System.currentTimeMillis();//通知发生的时间为系统当前时间
//新建一个通知,指定其图标和标题
Notification notification = new Notification(icon, null, when);//第一个参数为图标,第二个参数为短暂提示标题,第三个为通知时间
notification.defaults =
您可能关注的文档
- ABB_机器人指令精选02.pdf
- Abstract A Collaborative Process for K-12 Engineering Curriculum Development.pdf
- Abstract Architecture Analysis and Repair of Open Source Software.pdf
- Aberration associated with the reflection of light on a moving mirror.pdf
- Abstract Adaptive preference target Contribution of Kano’s model.pdf
- Abstract Assimilation of ocean colour data into a biochemical model of the North Atlantic P.pdf
- About the Chemical Evolution of dSphs (and the peculiar Globular Cluster Omega Cen).pdf
- Abel Prize 2009 geometry long.pdf
- ABSTRACT Automating Post-Silicon Debugging and Repair.pdf
- Abstract Broad Leaf Trees as Reservoirs for Phytoseiid Mites.pdf
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)