四大组件
Activity
Activity是与用户交互的入口,每一个Activity都是一个单独的页面,负责显示UI和响应用户操作。Activity之间通过Intent通信。Activity有自己的生命周期,需要手动进行管理,例如:
- onCreate():创建Activity,初始化界面、成员变量。
- onStart():对用户可见,但还没出现在前台。
- onResume():对用户可见,并出现在前台。
- onPause():Activity正在停止,用于保存数据、释放资源。
- onStop():对用户不可见。
- onDestory():销毁Activity。
Activity四种状态:
- Active/Running:一个新 Activity 启动入栈后,它显示在屏幕最前端,处于栈的最顶端(Activity栈顶),此时它处于可见并可和用户交互的激活状态,叫做活动状态或者运行状态
- Paused:当 Activity失去焦点, 被一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接,Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。所以它仍然可见,但已经失去了焦点故不可与用户进行交互。
- Stopped:如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被强行终止掉。
- Killed:如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。
Service
Service是运行在后台不与用户直接交互的组件,适用于需要在后台长时间操作的任务,例如播放音乐、下载文件等。Service主要有两种形式:
- 前台服务(Foreground Service):前台服务显示一个持续的通知,用户清楚地知道正在运行的服务。这种服务用于用户积极参与的任务(如播放音乐)或对用户很重要的任务(如文件下载)。
- 后台服务(Background Service):在应用不在屏幕上显示时执行的服务。从 Android Oreo(8.0)开始,后台服务的运行受到了严格限制以优化应用对设备电池生命的影响。
Broadcast Reciver
BroadCast Reciver用于接收并响应广播消息,广播消息可以来自于系统(电量通知、短信通知),也可以来自应用(应用通知)。BroadCast Reciver本身没有用户界面,但可以启动一个Service或Activity来响应接收到的消息。
Content Provider
Content Provider用于在不同应用间共享数据。每一个Content Provider都对外提供一个能够唯一标识自己数据集的公开URI,访问Content Provider中的数据主要通过ContentResolver对象,ContentResolver可以用来对Content Provider中的数据进行查询query()、插入insert()、修改update()和删除delete()等操作。
参考
https://zhuanlan.zhihu.com/p/628232942
https://blog.csdn.net/wsyx768/article/details/138511342
https://www.mianshiya.com/question/1820427823312048130