android 广播 ppt,《第6章Android消息与广播》精选课件.ppt

本文详细介绍了Android中的Intent组件,包括Intent的构成如组件名称、Action、Data、Category和Extra,以及Intent在启动Activity、Service和发送广播消息中的应用。此外,还列举了系统预定义的一些Action和Category常量,强调了Intent在组件间通信中的关键作用。
摘要由CSDN通过智能技术生成

第六章 Android消息与广播

本章目标:

掌握Intent

掌握Intent过滤器

熟悉BroadcastReceive组件应用

6.1 Intent

Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。当然,也可以将Intent视为一个在不同组件之间传递的消息,这个消息在到达接收组件后,接收组件会执行相关的动作。

由于Intent的存在,使得Android系统中相互独立的应用程序组件,成为了一个可以互相通信的组件集合。因此,无论这些组件是否在同一个应用程序中,Intent可以将一个组件的数据和动作传递给另一个组件。

Intent为Activity、Service和BroadcastReceiver等组件提供交互能力。Intent的一个最常见的用途就是启动Activity和Service,另一个用途是在Android系统上发布广播消息。广播消息可以是接收的特定数据或者消息,也可以是手机的信号变化或电池的电量过低等信息。

6.1 Intent

Intent是由组件名称、Action、Data、Category、Extra及Flag六部分组成的。接下来将分别对其进行详细介绍。

组件名称实际上就是一个ComponentName对象,用于标识唯一的应用程序组件,即指明了期望的Intent组件,这种对象的名称是由目标组件的类名与目标组件的包名组合而成的。在Intent传递过程中,组件名称是一个可选项,当指定它时,便是显式的Intent消息,当不指定它时,Android系统则会根据其他信息及IntentFilter的过滤条件选择相应的组件。

Action实际上就是一个描述了Intent所触发动作名称的字符串,在Intent类中,已经定义好很多字符串常量来表示不同的Action,当然,开发人员也可以自定义Action,其定义规则同样非常简单。

6.1 Intent

系统定义的Action常量有很多,下面只列出其中一些较常用的以供参考。

ACTION_CALL:拨出Data里封装的电话号码;

ACTION_EDIT:打开Data里指定数据所对应的编辑程序;

ACTION_VIEW:打开能够显示Data中封装的数据的应用程序;

ACTION_MAIN:声明程序的入口,该Action并不会接收任何数据,同时结束后也不会返回任何数据;

ACTION_BOOT_COMPLETED:BroadcastReceiverAction的常量,表明系统启动完毕;

ACTION_TIME_CHANGED:BroadcastReceiverAction的常量,表明系统时间通过设置而改变。

6.1 Intent

Data主要是对Intent消息中数据的封装,主要描述Intent的动作所操作的数据的URI及类型。不同类型的Action会有不同的Data封装,例如打电话的Intent会封装tel:格式的电话URI,而ACTION_VIEW的Intent中的Data则会封装http:格式的URI。正确的Data封装对Intent匹配请求同样非常重要。

Category是对目标组件类别信息的描述。同样作为一个字符串对象,一个Intent中可以包含多个Category。与Category相关的方法有三个,addCategory()添加一个Category,removeCategory()删除一个Category,而getCategory()得到一个Category。Android系统同样定义了一组静态字符常量来表示Intent的不同类型,下面列出一些常见的Category常量。

6.1 Intent

CATEGORY_GADGET,表明目标Activity是可以嵌入到其他Activity中的;

CATEGORY_HOME,表明目标Activity是HOMEActivity;

CATEGORY_TAB,表明目标Activity是TabActivity的一个标签下的Activity;

CATEGORY_LAUNCHER,表明目标Activity是应用程序中最先被执行的Activity;

CATEGORY_PREFERNCE,表明目标Activity是一个偏好设置的Activity。

Extra中封装了一些额外的附加信息,这些信息是以键值对的形式存在的。Intent可以通过putExtras()与getExtras()方法来存储和获取Extra。在Android系统的Intent类中,同样对一些常用的Extra键值进行定义。如下所示。

EXTRA_BCC,装有邮件密送地址的字符串数组;

EXTRA_EMAIL,装有邮件发送地址的字符串数组;

EXTRA_UID,使用ACTION_UID_REMOVED动作时,描述删除用户的id;

EXTR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值