Android四大组件启动顺序、生命周期详解

前言

今天有时间就准备整理一下Android的四大组件,有时候经常面试、技术群、朋友会聊起来四大组件,哪四大组件到底是什么,四大组件启动顺序是啥?我觉得如果面试的时候,有人问起来这个一定要注意,其实他想考察是你对四大组件的认识和理解,那么四大组件包括:Activity、Service、Broadcast Receiver、Content Provider等,那么四大组件的启动顺序,应用启动的时候会先启动哪个里,这个时候有很多可能不关心这方面,我以前也是这样,后面我是深入了解后,才知道这是很大的坑,慎重、慎重、慎重。

一、介绍

1.Activity简介

1)一个Activity通常就是一个单独的屏幕(窗口)。

2Activity之间通过Intent进行通信。

3android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。  

4)一个Activity就是一个独立业务可视化界面.也是四大组件中唯一一个可以与用户交互的组件,再有如果做过ios的话。肯定对ViewController有一定了解,Activity跟ios很像。

5Activity就像MVC中的C的架构,业务逻辑独立层,Activity可以实现业务逻辑、也可以业务逻辑抽离,但都离不开活动。         

2.Service简介

1)service是一个服务,一个可以执行长时间任务的,并执行在后台的单元,不可去做用户交互的事情。

2service包括两种服务方式:本地服务、远程服务。

3service本地服务就是存在于主线程的服务,使用bindService方式或者startService方式, bindService如果绑定的销毁,生命周期则被销毁。startService就是平时编写容易,

不需要去写一个binder,缺点无法跟发起者业务逻辑沟通。

4service 远程服务是指为独立的进程,对应进程名格式为所在包名加上你指定的android:process字符串。由于是独立的进程,因此在Activity所在进程被Kill的时候,该服务依然在运行,不受其他进程影响,有利于为多个进程提供服务具有较高的灵活性。该服务是独立的进程,会占用一定资源,并且使用AIDL进行IPC稍微麻烦一点。

3.Broadcast Receiver简介

1)Receiver是什么?首先它是一个广播,为啥一个广播都独立于四大组件,哪就如现实生活当中,如果两个人,如果一个人想起来有件事要找另一个人,那么怎么办?最好打电话,而广播就相当于手机,一个人与人之间通信,应用与应用可以通信的组件,而手机号码就是广播中的意图,可以定位找到

对方。

2Receiver包括两种服务方式:动态注册、静态注册。

3)动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

4.Content provider简介

1Provider是什么?首先它是一个内容共享,为啥一个广播都独立于四大组件,这个最大的好处是两个应用数据之间共享,通过一个url就可以访问对方数据。可以通过ContentResolver类从该内容提供者中获取或存入数据

2ContentProvider使用URI来唯一标识其数据集,这里的URIcontent://作为前缀,表示该数据由ContentProvider来管理。

3开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。

4只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值