Android Activity生命周期与配置变化

需积分: 13 2 下载量 118 浏览量 更新于2024-09-09 收藏 21KB DOCX 举报
"这篇资料主要介绍了Android开发中的五大布局(LinearLayout、RelativeLayout、FrameLayout、GridLayout、ConstraintLayout)以及四大组件(Activity、Service、BroadcastReceiver、ContentProvider),并且通过实例展示了Activity在屏幕旋转时的生命周期变化,包括如何处理配置更改。" 在Android应用开发中,布局是构建用户界面的关键部分,这五个布局各有其特点和用途: 1. **LinearLayout**:线性布局,按照垂直或水平方向排列子视图,可以设置权重来分配空间。 2. **RelativeLayout**:相对布局,子视图的位置相对于其他视图或者父视图的位置进行定义。 3. **FrameLayout**:帧布局,允许子视图覆盖,通常用于显示单个视图,如一个图片或视频。 4. **GridLayout**:网格布局,将视图按行和列排列,类似于表格。 5. **ConstraintLayout**:约束布局,是最先进的布局方式,通过约束实现灵活的布局设计,无需嵌套,可减少视图层级,提高性能。 四大组件是Android系统的核心组成部分: 1. **Activity**:表示应用程序的一个屏幕,处理用户交互,拥有生命周期方法如onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()。在屏幕旋转时,Activity会经历不同的生命周期状态,如上述描述,当旋转设备时,系统默认会销毁并重建Activity,以确保UI适配新布局。通过在AndroidManifest.xml中设置`android:configChanges="orientation"`,可以让Activity自己处理配置变更,避免重建。 2. **Service**:后台运行的服务,不提供用户界面,常用于执行长时间任务或与其他应用交互。 3. **BroadcastReceiver**:广播接收器,用于监听系统或自定义广播事件,可以在任何时刻接收并响应广播。 4. **ContentProvider**:数据提供者,用于在应用之间共享数据,遵循特定的接口和规则。 当在AndroidManifest.xml中设置`android:configChanges`属性,比如`android:configChanges="orientation|keyboardHidden"`,意味着Activity会监听这些配置变化,而不是让系统自动处理。当屏幕旋转时,onConfigurationChanged()方法会被调用,而不是触发完整的生命周期回调。这允许开发者在不销毁Activity的情况下更新UI以适应新的屏幕方向。 总结来说,理解这五大布局和四大组件是Android开发的基础,它们共同构建了Android应用的结构和交互。熟练掌握这些知识点,能帮助开发者更高效地创建和维护应用程序,同时也能更好地处理系统和用户行为导致的配置变化。