20210427日报

四大组件
(1)Android系统的四大组件分别是:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。
(2)Android的四大组件中除了BroadcastReceiver以外,其他三种组件(Activity、Service、ContentProvider)都必须在AndroidManifest中注册,对于BroadcastReceiver来说,它既可以在AndroidManifest.xml中注册,也可以通过代码来注册。
(3)在调用方式上,Activity、Service、BroadcastReceiver需要借助Intent,而ContentProvider则无须借助Intent。

Activity
用户可操作的可视化界面,为用户提供一个完成操作指令的窗口。一个Activity通常是一个单独的屏幕,Activity通过Intent来进行通信。Android中会维持一个Activity Stack,当一个新Activity创建时,它就会放到栈顶,这个Activity就处于运行状态。
Service
服务,运行在手机后台,适合执行不需和用户交互且还需长期运行的任务。
Broadcast Receiver
广播接收器,运用在应用程序间传输信息,可以使用广播接收器来让应用对一个外部事件做出响应。
Content Provider
内容提供器,使一个应用程序的指定数据集提供给其他应用程序,其他应用可通过ContentResolver类从该内容提供者中获取或存入数据。它提供了一种跨进程数据共享的方式,当数据被修改后,ContentResolver接口的notifyChange函数通知那些注册监控特定URI的ContentObserver对象。
①如果ContentProvider和调用者在同一进程中,ContentProvider的方法(query/insert/update/delete等)和调用者在同一线程中;
②如果ContentProvider和调用者不在同一进程,ContentProvider方法会运行在它自身进程的一个Binder线程中。

原文地址:https://www.cnblogs.com/Clark-Shao/p/14908375.html