Android API课程1.2:Activating Components

本文介绍了Android应用程序的四种核心组件:活动、服务、广播接收器和内容提供者,并详细阐述了Intent对象如何用于组件间通信及数据交换。Intent不仅能够启动活动和服务,还能广播通知。内容提供者则通过ContentResolver进行数据交互。
摘要由CSDN通过智能技术生成

在四种应用组件中,活动,服务和广播这三种是被叫intent(目的,意图)的异步消息激活的。intent彼此绑定在运行时的单个组件,而不管这些组件是属于你的应用还是其它的应用。你可以认为intent就是,其它组件的的请求消息。

 

intent是被Intent对象创作的,Intent对象定义消息去激活一个或者一种组件的。intent可以是明确的,也可以是暗示的,独自的。

 

对于活动和服务,intent定义执行的动作(例如,去看或者发送)和可能指定执行的URI(统一资源定义)数据(可能其他的组件需要知道的)。例如,intent可能传送请求给一个活动去显示图片或者打开网页。在一些情况下,你可以启动活动去接收返回结果,在这种情况下,活动也会返回结果给Intent。例如,你可以发出intent去让用户选择一个联系人并让它返回给你,那么返回的intent包含一个选中的联系人的URI点。

 

对于广播接收器(broadcast receivers),intent简单地定义被广播的通知,例如,一个广播是要指明电池电量低只需包括一个已知的动作字段标识“batter is low”。

 

剩下的一种组件,内容提供者(content provider),他们不是被intent激活的。而是被,来自ContentResolver的请求定位后,激活的。Content resolver使用content provider处理所有的直接事务,以便执行事务的组件不需要对ContentResolver调用方法。这就在content provider和组件请求信息之间产生了一个抽象层,这是为了安全。

 

激活每种组件都有单独的方法:

  • 你可以通过发送Intent给startActivity()或者startActivityForResult()(当你想接收活动的返回值),启动一个活动或者给它新东西做。
  • 你可以通过发送Intent给startService(),来启动一项服务或者给正在运行的服务新的指令;或者你可以通过发送Intent给bindService()来绑定一个服务。
  • 你可以通过发送一个Intent给像sendBroadcast(),sendOrderedBroadcast()或者sendStickyBroadcast(),来发起一个广播。
  • 你可以通过在ContentResolver中调用query()来向content provider(内容提供者)执行查询。

更多信息关于怎么使用intents,参考Intents and Intent Filters文档。更多的信息关于激活特定的组件也被写在以下的文档: Acitivities,Services,BroadcastReceiver 和 Content Providers。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值