目录
活动 Activity
服务 Service
广播接收器 Broadcast Receivers
内容提供者Content Provider。
碎片 Fragment
意图 Intent
活动 Activity
活动代表了一个具有用户界面的单一屏幕,如 Java 的窗口或者帧。
Android 的活动是 ContextThemeWrapper 类的子类。
调用 | 描述 |
---|---|
onCreate() | 这是第一个回调,在活动第一次创建是调用 |
onStart() | 这个回调在活动为用户可见时被调用 |
onResume() | 这个回调在应用程序与用户开始可交互的时候调用 |
onPause() | 被暂停的活动无法接受用户输入,不能执行任何代码。当当前活动将要被暂停,上一个活动将要被恢复是调用 |
onStop() | 当活动不在可见时调用 |
onDestroy() | 当活动被系统销毁之前调用 |
onRestart() | 当活动被停止以后重新打开时调用 |
服务 Service
服务是一个后台运行的组件,执行长时间运行且不需要用户交互的任务,应用被销毁也依然可以工作。
服务基本上包含两种状态:
状态 | 描述 |
---|---|
Started | Android 的应用程序组件,如活动,通过 startService() 启动了服务,则服务是 Started 状态。一旦启动,服务可以在后台无限期运行,即使启动它的组件已经被销毁。 |
Bound | 当 Android 的应用程序组件通过 bindService() 绑定了服务,则服务是 Bound 状态。Bound 状态的服务提供了一个客户服务器接口来允许组件与服务进行交互,如发送请求,获取结果,甚至通过IPC来进行跨进程通信。 |
广播接收器 Broadcast Receivers
广播接收器用于响应来自其他应用程序或者系统的广播消息。这些消息有时被称为事件或者意图。
状态 | 描述 |
---|---|
创建 | 广播接收器为 BroadcastReceiver 类的子类,重写 onReceive() 方法来接收以 Intent 对象为参数的消息。 |
注册 | 应用程序通过在 AndroidManifest.xml 中注册广播接收器来监听制定的广播意图。 |
内容提供者 Content Provider
通过请求从一个应用程序向其他的应用程序提供数据,支持多个不同的应用程序访问。这些请求由类 ContentResolver 的方法处理。
与数据库类似,具备增删改查等功能,可以使用不同的方式来存储数据,如存放在数据库,文件,网络之中。
通过指定格式 的URI 形式查询内容提供者中指定的字符串:<prefix>://<authority>/<data_type>/<id>
部分 | 说明 |
---|---|
prefix | 前缀:一直被设置为 content:// |
authority | 授权:指定内容提供者的名称,例如联系人,浏览器等。第三方的内容提供者可以是全名,如:cn.programmer.statusprovider |
data_type | 数据类型:这个表明这个特殊的内容提供者中的数据的类型。例如:你要通过内容提供者 Contacts 来获取所有的通讯录,数据路径是 people,那么 URI 将是下面这样:content://contacts/people |
id | 这个指定特定的请求记录。例如:你在内容提供者 Contacts 中查找联系人的 ID 号为 5,那么 URI 看起来是这样:content://contacts/people/5 |
碎片 Fragment
碎片是一种子活动,是活动的一部分,是更加灵活的模块化设计。
通过继承 Fragment 类来创建碎片,并通过在活动的布局文件中声明碎片,进而在活动中插入碎片。
通过两个碎片定义的UI模块,能够实现平板和手机的融合设计与分离显示,根据屏幕尺寸实现不同的 UI 界面显示。
意图 Intent
一种被动的数据结构,保存着要执行操作的抽象描述,可以通过 startActivity 来启动一个活动,也可以通过 broadcastIntent 来发送广播到任何对它感兴趣的广播接受器组件,同样也可以通过 startService(Intent) 或者 bindService(Intent, ServiceConnection, int) 来与后台服务进行通讯。
Intent 主要包含 Action 和 Data 两部分。
组件 | 说明 |
---|---|
Action | Intent 对象中必须的部分,以字符串的形式表示,通过 setAction() 方法来设置,通过 getAction() 方法来读取。 |
Data | 添加 Data 到 Intent 过滤器。可以只包含一种数据类型 ( 如元类型属性 ),或一条 URI ,或者同时包括数据类型和 URI 。 |
Intent 可分为显示 Intent 和隐式 Intent 两类。
分类 | 说明 |
---|---|
显示 | 连接应用程序的内部活动,用于连接一个活动到另外一个活动。 |
隐式 | 没有为目标命名,组件名称的域为空。常用于激活其他应用程序的组件。 |