Android面试题系列 --1 四大组件

本文详细介绍了Android四大组件之一的Activity和服务的基本概念、生命周期、启动模式等,并解释了ContentProvider和BroadcastReceiver的功能及其与EventBus的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面试参考资料

目录

重点内容

Activity

简介
Activity是Android程序与用户交互的窗口,它需要保持各界面的状态,妥善管理生命周期以及一些跳转逻辑,做很多持久化的事情。底层是由ActivityManager中的方法通过ActivityManagerProxy(以后简称AMP)建立和ActivityManagerNative(AMN)的通信,而AMN是一个抽象类,它会将功能交由它的子类AMS来处理(AMS是系统核心服务,不能直接暴露出去)。

生命周期

旧的先onPause(),新的onCreate(),onStart(),onResume(),旧的再onStop()。

启动模式

Service

简介
Service,后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的动作,定义好需要接受的Intent提供同步和异步的接口。

生命周期
01

02

屏幕旋转时的Activity生命周期:
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次;
设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次;
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

启动方式
standard:默认模式。每次启动一个Activity都会重新创建一个新的实例,不管实例是否已经存在。被创建的实例的生命周期符合典型的Activity的生命周期。在这种模式下,谁启动了这个Activity,那么这个Activity就运行在启动它的那个Activity所在的栈中。

singleTop:栈顶复用模式。在这种模式下,如果新Activity已经位于任务栈的栈顶(处于完全可见状态),那么此Activity不会被重新创建。但是如果新的Activity不是位于栈顶(处于不完全可见状态),那么新Activity仍然会重新创建。
在singleTop(栈顶复用模式)下,如果Activity位于栈顶,我们再次启动该方法,那么该方法会回调onNewIntent方法,而onCreate、onStart方法不会被调用。

重点内容

Content Provider

简介
是Android提供的第三方应用数据的访问方案,对外提供数据,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用对数据的整合提供了更方便的途径。

BroadcastReceiver

简介
接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
主要有5种类型。

广播和EventBus区别

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值