博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Android 应用案例开发大全(第二版)》——6.1节Android系统的信使:Intent
阅读量:6199 次
发布时间:2019-06-21

本文共 1031 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区《Android 应用案例开发大全(第二版)》一书中的第6章,第6.1节Android系统的信使:Intent ,作者李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.1 Android系统的信使:Intent

Android开发权威指南(第二版)
Android系统从诞生之初就不允许直接访问4大应用程序组件1(Activity、Service、Broadcast Receiver和Content Provider),这就需要提供一种机制可以访问这些组件,这也是Intent诞生的根本原因。

Intent对象被应用于4大应用程序组件中的3个(Activity、Service和Broadcast Receiver),而Content Provider会采用其他方式访问(在后面的章节会详细介绍)。例如,对于窗口(Activity)来说,尽管无法直接访问窗口实例,但可以调用startActivity方法显示窗口。为了可以更灵活地控制窗口,以及向窗口传递数据,就需要一种技术来完成这些工作,这就是Intent对象的核心功能,所以说Intent对象从本质上来说就相当于一个信使,用于保存和传输各种数据。

服务(Service)和广播(Broadcast)的使用方法和窗口(Activity)类似,Intent对象也用来完成类似的工作。

下面的代码用于开始服务和发送广播,其中都使用到了Intent对象。关于服务和广播的细节会在后面的章节讨论。

// MyService是服务类Intent serviceIntent = new Intent(this, MyService.class);// 开始服务startService(serviceIntent)**;**// mybroadcast是广播字符串Intent broadcastIntent = new Intent("mybroadcast");// 向系统发送一条广播sendBroadcast(broadcastIntent)**;**

从上面的代码可以看出,开始服务、发送广播和显示窗口的代码风格是相同的,都需要创建一个Intent对象,并指定相关的信息(服务指定具体的服务类;广播指定一个字符串,被称为Broadcast Action)。

1如果读者继续阅读本书后面的章节,会逐渐体会到为什么安迪-鲁宾(Andy Rubin,Android之父)要这么设计。

转载地址:http://muica.baihongyu.com/

你可能感兴趣的文章
扩展欧几里德算法及其应用
查看>>
linux OS一些基本概念
查看>>
在Android java代码中如何改变文件的权限
查看>>
MySQL 5.7 弱密码限制
查看>>
spring4.0学习笔记(一)
查看>>
CakeDC(cakephp company)Git workflow--适合于较大团队大型项目开发
查看>>
Mysql主从配置+读写分离(转)
查看>>
PowerMockito使用详解(转)
查看>>
find: paths must precede expression(转)
查看>>
Oracle在linux下的开机自启动(详细)转
查看>>
第1章:Maven概述/1.1 Maven的概念
查看>>
asp.net core 上使用redis探索(3)--redis示例demo
查看>>
HTTP权威指南(读书笔记一)
查看>>
[PHP]算法-替换空格的PHP实现
查看>>
WingIDE 下载,介绍和配置
查看>>
android 正则表达式
查看>>
如果我是一线技术主管
查看>>
MySql优化方案
查看>>
软件测试的几个误区
查看>>
递归--变位数(练习)
查看>>