Android基础知识(三):Android四大组件简介

Android基础知识(三):Android四大组件简介

一、Activity
Activity是一种可以包含用户界面的组件,主要用于和用户进行交互

  1. 关于Activity
    一个Activity通常就是一个单独的屏幕(窗口),Activity之间通过Intent进行通信。Android应用中每个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。
    Activity被一种称为Intent的异步消息所激活。(关于Intent可参照笔记——Android基础知识(四):Intent)。
    Activity的关闭可以通过调用其finish()方法进行。
  2. Android中的任务(Activity栈)
    任务其实就是Activity中的栈,其由一个或多个Activity组成,共同完成一个完整的用户体验。栈底是启动整个任务的Activity,栈顶是当前运行的用户可以交互的Activity。当一个activity启动另外一个的时候,新的activity就被压入栈,并成为当前运行的activity。而前一个activity仍保持在栈之中。当用户按下BACK键的时候,当前activity出栈,而前一个恢复为当前运行的activity。栈中保存的其实是对象,栈中的Activity永远不会重排,只会压入或弹出。
    在这里插入图片描述
    任务中的所有activity是作为一个整体进行移动的。整个的任务(即activity栈)可以移到前台,或退至后台。
    Android系统是一个多任务(Multi-Task)的操作系统,可以在用手机听音乐的同时,也执行其他多个程序。每多执行一个应用程序,就会多耗费一些系统内存,当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统就会觉得越来越慢,甚至不稳定。为了解决这个问题,Android引入了一个新的机制,即**生命周期(**Life Cycle)。

二、Service
Service是Android中实现程序后台运行的解决方案,用于后台完成用户指定的操作,其非常适合用于执行那些不需要和用户交互而且还要求长时间运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开另一个应用程序,服务依旧可以保持正常运行。
Android应用中每个Service都必须要在AndroidManifest.xml配置文件中声明,并且被Intent所激活。
需要注意的是,Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态

三、Content Provider(内容提供器)
Content Provider主要用于在不同的应用程序之间实现数据共享的功能,其提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。
Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
同样的Content Provider需要在AndroidManifest.xml配置文件中进行配置声明,不同的在于,Content Provider只有在接收到ContentResolver发出的请求后,才会被激活,因此也就不需要被显示关闭。

四、Broadcast Receiver(广播接受者)
Broadcast Receiver本质上是一个全局的监听器,用于监听(接收)应用发出的广播消息,并作出响应
最为常见的应用场景:
 不同组件之间通信(包括应用内/不同应用之间)
 Android系统在特定情况下与App之间的消息通信(电话呼入等)
 多线程通信
不同于前三个组件,Broadcast Receiver有两种注册方式:静态注册和动态注册。静态注册是在AndroidManifest.xml中进行注册,而动态注册则是在对应的Activity中进行注册。具体内容参看笔记:Android基础知识(十四):Broadcast Receiver简介与基本用法

参考资料:《第一行代码 Android 第2版》
Android之四大组件、六大布局、五大存储

猜你喜欢

转载自blog.csdn.net/weixin_38196407/article/details/89510838