-- Android 四大组件:

Activity、Service、BroadcastReceiver 和 ContentProvider


Android 的其中三大组件 Activity、Service 和 ContentProvider 都必须在 AndroidManifest 中注册。

而对于 BroadcastReceiver 来说,它既可以在 AndroidManifest 中注册,也可以通过代码来注册。

在调用方式上,Activity、Service、和 BroadcastReceiver 需要借助 Intent,而 ContentProvider 则无须借助 Intent 。


(1) Activity 是一种展示型组件,用于向用户直接地展示一个界面,并且可以接收用户的输入信息从而进行交互

Activity 的启动由 Intent 触发,其中 Intent 可以分为显式 Intent 和 隐式 Intent,

-- 显式 Intent 可以明确地指向一个 Activity组件;

-- 隐式 Intent 则指向一个或多个目标 Activity 组件,当然也可能没有任何一个 Activity 组件可以处理这个隐式 Intent。

一个 Activity 组件可以具有特定的启动模式


(2) Service 是一种计算型组件,用于在后台执行一系列计算任务

Service 组件有两种状态:启动状态和绑定状态。

-- 当 Service 组件处于启动状态时,这个时候 Service 内部可以做一些后台计算,并且不需要和外界有直接的交互。

尽管 Service 组件是用于执行后台计算的,但是它本身是运行在主线程中的,因此耗时的后台计算仍然需要在单独的线程中去执行。

-- 当 Service 组件处于绑定状态时,这个时候 Service 内部同样可以进行后台计算,但是处于这种状态时外界可以很方便地和 Service 组件进行通信。

Service 组件也是可以停止的,停止一个 Service 组件稍显复杂,需要灵活采用 stopService 和 unBindService 这两个方法才能完全停止。


(3) BroadcastReceiver 是一种消息型组件,用于在不同的组件乃至不同的应用之间传递消息

BroadcastReceiver 注册有两种方式:静态注册和动态注册。

-- 静态注册是指在 AndroidManifest 中注册广播,这种广播在应用安装时会被系统解析,此种形式的广播不需要应用启动就可以收到相应的广播。

-- 动态注册广播需要通过 Context.registerReceiver() 来实现,并且在不需要的时候要通过 Context.unregisterReceiver 来解除广播,

此种形式的广播必须要应用启动才能注册并接收广播,因为应用不启动就无法注册广播,无法注册广播就无法收到相应的广播。


(4) ContentProvider 是一种数据共享型组件,用于向其他组件乃至其他应用共享数据

对于一个 ContentProvider 组件来说,它的内部需要实现增删改查这四种操作,在它的内部维持着一份数据集合,这个数据集合

既可以通过数据库来实现,也可以采用其他任何类型来实现,比如 List 和 Map,ContentProvider 对数据集合的具体实现并没有任何要求。

需要注意的是,ContentProvider 内部的 insert、delete、update 和 query 需要处理好线程同步,因为这几个方法是在 Binder 线程池中被调用的,

另外 ContentProvider 组件也不需要手动停止。

更多相关文章

  1. 如何在后台运行Linux命令?
  2. 事件分发系列—View中的dispatchTouchEvent和onTouchEvent分析
  3. Android事件处理(6)
  4. Android(安卓)在工作线程(非主线程)更改UI组件
  5. Android(安卓)Activity 生命周期
  6. Android(安卓)JNI 几个常用方法
  7. Android状态栏透明(沉浸式效果)
  8. Android(安卓)7.0 隐式广播-监听网络变化
  9. 手机锁屏后再解锁保存activity状态

随机推荐

  1. Android(安卓)关于ObjectAnimator 的几种
  2. Android UI开发第十九篇――介绍一个开源
  3. 快乐周末:典型的 Android 用户是穿T恤和牛
  4. 文本内容自动朗读
  5. j2me程序移植入android总结
  6. Android(安卓)Studio SDK Manager无法正
  7. Android(安卓)杀不死的服务
  8. android中实现内容搜索
  9. Android(安卓)camera系统开发之IPC (四)
  10. 鑷紪Win8椋庢牸Android闊充箰鎾斁鍣