Android 四大组件

Activity

一个Activity通常是一个界面,是四大组件唯一能被用户感知的

每个活动被实现为一个独立的类,从活动基类继承过来

Activity之间通过 Intent 进行通信

需要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity

生命周期

image-20210311184321373

启动模式

Standard 每次都新建一个实例

SingleTop 如果栈顶没有实例,就新建实例

SingleTask 每次都复用栈内的实例,并把在它之前的所有activity顶出去,重新回到栈顶

SingleInstance 只有一个实例,用另外一个栈来保存这个实例对象

Service

service(服务)是一种可以在后台执行长时间运行操作而没有用户界面的应用组件。

服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响。

但是当该应用程序进程被杀死的时候,service也会销毁

启动状态

当应用组件(如 Activity)通过调用 startService() 启动服务时,服务即处于“启动”状态。一旦启动,服务即可在后台运行,即使启动服务的组件已被销毁也不受影响,除非手动调用才能停止服务, 已启动的服务通常是执行单一操作,而且不会将结果返回给调用方。

绑定状态

当应用组件通过调用 bindService() 绑定到服务时,服务即处于“绑定”状态。绑定服务提供了一个客户端-服务器接口,允许组件与服务进行交互、发送请求、获取结果,甚至是利用进程间通信 (IPC) 跨进程执行这些操作。 仅当与另一个应用组件绑定时,绑定服务才会运行。 多个组件可以同时绑定到该服务,但全部取消绑定后,该服务即会被销毁。

生命周期

image-20210311185210974

BroadcastReceiver

一种广泛运用在应用程序之间传输信息的机制,通过发送Intent来传送我们的数据

内部通信实现机制:通过android系统的Binder机制.

分为 无序广播 和 有序广播

广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。

ContentProvider

android四大组件之一的内容提供器,它主要的作用就是将程序的内部的数据和外部进行共享,为数据提供外部访问接口,被访问的数据主要以数据库的形式存在,而且还可以选择共享哪一部分的数据,可以通过ContentResolver类从该内容提供者中获取或存入数据。。

参考

https://juejin.cn/post/6844903977100771335#heading-33

原文地址:https://www.cnblogs.com/lukelmouse/p/14519937.html