Browsed by
Tag: broadcast

Android开发指导随译(2) — 应用程序基本原理(3)

Android开发指导随译(2) — 应用程序基本原理(3)

Service(服务)

服务没有可视界面, 而是在后台运行不确定的时间. 例如, 一个服务可以播放背景音乐, 或者从网络中获取数据, 或者做一些计算,等等.

每个服务都是从Service基类扩展(笔注: extend? or 派生?).

典型的应用例子是媒体播放. 如果媒体播放行为退出后, 仍然希望能继续播放音乐, 媒体播放行为应启动一个服务在后台运行. 系统将保持音乐播放服务, 即使启动它的行为已经离开了当前屏幕.

可以连接已经运行的服务, 或者启动尚未运行的服务. 连接完成后, 可以通过服务提供的接口与服务进行通信. 对音乐服务而言, 它提供的接口可以允许用户暂停, 倒回, 体制或者重新播放音乐.

与行为和其他组件一样, 服务运行在应用程序进程的主线程, 所以它们不会阻塞其他组件或者用户界面. (笔注: 这里的意思应该是指服务是在一个独立的线程中运行, 不会干扰其他线程吧??)

Broadcast receivers(广播接收者,BR)

BR只接收和响应广播通知, 不做其他任何事情. 有些广播是由系统发起的, 例如时区改变, 电池电量不足, 用户改变了界面语言等. 应用程序也能发起广播, 例如通知其他应用程序某些数据已经下载到设备,并且可以使用了.

应用程序可以由任意数目的BR来响应它认为重要的任何通知. 所有的接收者都是扩展自BroadcastReceiver基类.

BR也不显示用户界面. 然而, 它们可以启动一个行为来响应它们接收到的信息, 或者使用NotificationManager通知用户.

Content providers (内容提供者, CP)

CP可以使一系列的应用程序数据能够被其他应用程序使用.

CP扩展自ContentProvider基类, 实现了一系列标准的方法供其他程序获取,存储它所控制的数据类型. 然而, 应用程序不是直接调用这些方法, 而是使用ContentResolver(CR)对象并调用它的方法. 一个CR可以与任何CP通话. CR和CP共同管理着跨进程通信.

附注, 我开始使用缩写语了, 玷污了中文环境, 我很惭愧……