Android面试题系列 --1 四大组件
目录
重点内容
Activity
简介
Activity是Android程序与用户交互的窗口,它需要保持各界面的状态,妥善管理生命周期以及一些跳转逻辑,做很多持久化的事情。底层是由ActivityManager中的方法通过ActivityManagerProxy(以后简称AMP)建立和ActivityManagerNative(AMN)的通信,而AMN是一个抽象类,它会将功能交由它的子类AMS来处理(AMS是系统核心服务,不能直接暴露出去)。
生命周期
旧的先onPause(),新的onCreate(),onStart(),onResume(),旧的再onStop()。
启动模式
Service
简介
Service,后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的动作,定义好需要接受的Intent提供同步和异步的接口。
生命周期
屏幕旋转时的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区别