Intent、Broadcast Receiver

其实我们往往只看到表面,而往往忽视内在。就像Android一样,我们总是看到Fragment、Activity,但却往往看不到在后台默默为我们服务的Intend、Broadcast Receiver、Service、Alarm等。他们在定时通知、广播接收、接收消息推送方面起着巨大的作用。下面我们来一起了解一下吧。

看了网上一大堆的intent的解释,不是说别人写的不好,而是说我自己确实能力有限,我连一些定义概念都看不懂,又怎么会有耐心看完长达两三千字的文章呢。所以我结合了一些官网知识,和百度搜索的,书本知识的,进行了如下总结:
首先从会出现的每一个概念入手:

四大组件:

Activity:一个可以展示信息的并且交互的用户页面
Service:在后台处理一些事务,如网络获取数据等长时间响应的
Broadcast Receiver:用来响应系统广播通知的组件,例如可以显示通知栏消息等。
Content Provider:管理一组共享的应用数据,当然也可以写入不共享的信息。其他应用程序可以读取或修改共享的信息。
那么我如何来启动这些组件呢?通过Intent。
Intent:是其他组件请求操作的信使。通过异步请求,将Service、Broadcast Receiver、Service相互绑定。定义的消息用于启动特定组件或特定类型的组件,分为显式和隐式。(何为显式和隐式,就是看得见和看不见两种)

1、对于Activity、Service而言,Intent定义要执行的操作,“查看”或者“发送”某个内容(被请求的Activity可能需要了解的信息),比如打开另一个查看图片的Activity。当然,您也可以启动Activity来接受结果,Activity会在intent中返回一个结果,比如选取图片后,返回给调用者一个URI。
2、对于广播接收器,只是定义要广播的通知。比如指示设备电量不足,就提示“设备电量不足”,等已知的操作字符串。

不同组件有不同启动方法,

Activity:startActivity(),startActivityForResult()(如果想看到返回结果的话)
Service:startService(),来启动服务,或向执行中的服务下达新的指令。Intent通过bindService()来绑定服务(旨在使用客户端-服务器接口)
Broadcast:通过intent传递到sendBroadcast(),sendOrderedBroadcast(),sendStickBroadcast()等方法来发起广播。

Intent是一个消息传递对象

https://developer.android.google.cn/guide/components/intents-filters

这个是谷歌官方的真的非常推荐,说的非常详细。本来确确实实想自己总结一下子来,结果看到了官方文档。官方文档你看过一遍之后,你绝对阔以胜任所有Android日常开发工作了。

清单文件:是系统启动程序前必须读取的文件,里面必须声明所有组件,确认组件的存在。还有如权限、API、需要的硬件或功能都需要在此声明。
声明时的框框:

Activity 的 元素
服务的 元素
广播接收器的 元素
内容提供程序的 元素
(广播接收器可以在清单文件中声明或在代码中动态创建(如 BroadcastReceiver 对象)并通过调用 registerReceiver() 在系统中注册)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值