Android四大组件总结
创始人
2025-05-31 18:23:22

一、四大组件

1.活动Activity

活动的生命周期

  • onCreate(): 第一次创建活动,在这里完成所欲常规静态设置:包括创建试图,将数据绑定列表中
  • onRestart():在活动onStop()之后调用,重新启动
  • onStart(); 活动对用户变得可见的时候,如果活动进入前台,后跟onResume(), 如果变为隐藏,后面紧跟着onStop()
  • onResume(): 活动开始与用户交互的时候调用,此时活动位于堆栈的顶部,并且有用户输入,后面紧跟onPause()
  • onPause(): 当系统即将开始恢复到以前的活动时候调用,暂停的活动不会接收用户输入,并且不能执行任何代码,如果活动返回到前面的时候,则跟随在onResume()之后,如果用户不可见的,则跟随onStop()
  • onStop(): 当活动对用户不再可见的时候调用,因为另一个活动已经恢复并且正在覆盖这个活动
  • onDestroy(): 在活动被破坏之前收到的最终调用
    在这里插入图片描述

2.Intent

  • 这是Android组件之间进行通信的一种方式
    • 显式意图:例如:new Intent(this. newActivtiy.class)
    • 隐式意图:例如:new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http:www.baidu.com"));
  • 意图解析
    • action
    • data
    • category

3.服务Service

  • 服务是一项长期运行的任务或流程,不需要和用户交互
  • 开始:通过调用startService进行启动,一旦启动,即使启动它的组件被销毁了,服务也会无限期的后台运行
  • 绑定:通过bindService(), 通过IPC跨进程调用来操作。

生命周期

  • onStartCommand(): 服务启动之后会调用这个函数,如果实现了这个功能,就应该通过调用stopSelf() 或者 stopService()来销毁它
  • onBind(): 另一个组件想要通过调用bindService()来与服务进行绑定,如果不允许绑定就实现该方法,返回null
  • onCreate(): 系统第一次创建这个服务的时候会进行调用这个方法来执行一次性的设置过程(处于onStartCommand()和onBind()之前)
  • onDestroy(): 服务不再使用的时候并被销毁的时候
    在这里插入图片描述

注意点:如果一个组件通过startService() (会有onStartCommand()方法的调用)来启动服务,则该服务将会保持运行状态,直到它停止使用stopSelf()或者另一个组件通过stopService()来停止它;如果一个组件调用bindService()来创建服务(并且不调用onStartCommand()),那么只要该组件绑定了服务,该服务就会运行起来,一旦服务从所有的客户端解除绑定,系统就会销毁它。

4.BroadcastReceiver

  • 广播
    • 有序广播:被广播接收器接受之后,可被终止,无法向下传递,例如:短信广播
    • 普通广播:发送到每一个已经注册的的广播接收器,无法被终止,例如:开机广播,蓝牙广播
  • 广播接收器
    • 静态注册广播:在AndroidManifest.xml中设置,程序不用启动也可以接收
    • 冬天注册广播:代码中注册广播,程序未启动的时候,无法接收广播。
      在这里插入图片描述

5.内容提供器ContentProvider

  • 跨APP,跨进程,共享数据的一款容器

6.对比

组件名主要作用什么时候使用逻辑实现
Actvitiy负责与用户交互的组件需要编写与用户交互的逻辑代码是一个window容器,内含getWindow方法
View用户所见即所得,一般绑定在Activity编写一个视图供给给用户操作是所有UI控件,容器控件的基类
Service运行在后台的服务,不需要与用户交互,一般提供各种功能功能服务,或称工具ContextWrapper的子类
BroadcastReceiver广播接收器接受设备内的广播,对此做出相应的业务反应类似于监听器
ContentProvider存储数据暴露给其他应用需要存储数据的容器数据库
ContentResolver读取数据从数据库读取数据数据库
IntentActivity\Service\BroadcastReceiver三种组件之间通信靠intent组件间传递消息NA
IntentFilter筛选项和上面Intent隐式用法相关NA

相关内容

热门资讯

坚定信心 行稳致远(记者手记) 侯琳良 最近一段时间,海尔集团上世纪90年代投资制作的《海尔兄弟》动画片,在多个视频平台上线高清重制...
世纪大辩论2——哈耶克与凯恩斯... 本来节后决定启动一个项目,但家里临时有事,需要陪家人去一趟北京,节后拉群的事,因此要推迟一周左右(具...
4月广州消费品市场表现强劲 1-4月,随着消费品以旧换新等促消费政策持续发力和各类会展活动陆续开展,政策相关消费快速增长,升级类...
金价,又跌了! 人民财讯5月31日电,5月30日,COMEX黄金期货收跌0.92%,报3313.1美元/盎司。 从高...
10万吨改性项目!巴斯夫、金发... 【DT新材料】获悉,6月3日,沪市主板新股海阳科技将启动申购,上市在即! 资料显示,海阳科技前身为南...
湾财周报|大事记 比亚迪驳斥“... 一周大事记(5月26日-6月1日) 头条 比亚迪驳斥! 长城“车圈恒大论”是行业警示还是危言耸听?...
通源石油跌1.96%,成交额1... 5月30日,通源石油跌1.96%,成交额1.03亿元,换手率4.40%,总市值23.54亿元。 异动...
中国邮储银行浙江分行2025校... 点这里 ↑ 老满说高考 作者 l 老满 生涯规划师l 升学顾问l 拆书家 这是 老满说高考公众号 的...
公募基金规模首次突破33万亿元... 每经记者:肖芮冬 每经编辑:叶峰 天赐良基日报第654期 一、今日基金新闻速览 1、华润元大基金贾...
湾财周报 大事记 比亚迪驳斥“... 一周大事记(5月26日-6月1日)头条比亚迪驳斥!长城“车圈恒大论”是行业警示还是危言耸听?近日,关...
EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
工信部、中汽协紧急发声!汽车“... 文/刘育英新一轮汽车价格战再起。近日,工信部、中汽协纷纷发声表示反对。工业和信息化部表示,将加大对汽...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
募资39亿,全亏光了,账上不到... 关于天然气,用户的感觉是价格一直在上涨,但很奇怪,不管怎么涨,天然气企业仍然亏,还亏得一塌糊涂。这是...
资阳房产评估公司 这是(tel-15828298733)整理的信息,希望能帮助到大家 在当今社会,随着经济的发展和城...
华桥汇利(中国)投资基金管理有... 今年第一季度,美国企业利润出现大幅下降,且面临着来自关税上升的持续压力,这一局面可能会在今年进一步加...
ESG 报告合规与鉴证:全球政... 在当下全球经济格局里,ESG(环境、社会和公司治理)已然成为衡量企业可持续发展能力的关键指标。随着全...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...
与锤巨子生物的大嘴博士持股同一... 医美龙头巨子生物“成分争议”风波持续发酵。日前,美妆博主大嘴博士(香港大学化学博士郝宇)发文,质疑巨...
Linux之进程间通信 目录 进程间通信介绍 一、为什么要进行进程间通信? 二、进程间通信目的 三、进程间通信...
从“造城”到“留客”,文旅局长... 你有没有刷到最近各地文旅局局长全体“尬舞”的视频?领导们放下架子开始跳魔性舞蹈,这场舞的背后啊,可不...
Hazel引擎学习(十一) 我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看...
孩子的教育金,分享3个「有效」... 点击 “简七读财” ,发送消息“ 理财小工具 ”免费领取“40个赚钱工具资源包”晚上好,我是简七编...
iZotope RX 10(专... iZotope RX 10是一款专业的音频修复和增强软件,具有音频修复工具、音频增强工...
我的docker随笔40:cl... 本文介绍 clickhouse 数据库的容器化部署。 起因 某项目需生产环境数据库,因...
透视一周牛熊股:最牛股路桥信息... 过去一周(5月26日—5月30日)A股三大指数集体下跌。截至5月30日收盘,上证指数报3347.49...
基于matlab创建地面固定雷... 一、前言此示例演示如何创建和显示包含地面固定雷达、转弯飞机、等速飞机和移动地面车辆的多平台方案。二、...
暗夜发光,独自闪耀,盘点网页暗... 众所周知,网页的暗黑模式可以减少屏幕反射和蓝光辐射,减少眼睛的疲劳感&#...
C语言-程序环境和预处理(2) 文章目录预处理详解1.预定义符号2.#define2.1#define定义的标识符2.2#defin...