首页 > 其他分享 >手机旋转的时候 activity会走什么生命周期?

手机旋转的时候 activity会走什么生命周期?

时间:2024-10-24 18:49:23浏览次数:8  
标签:xml 生命周期 onConfigurationChanged 配置 旋转 configChanges Activity activity

当手机旋转时,Activity的生命周期会受到影响,但具体行为取决于是否在AndroidManifest.xml文件中对Activity进行了特定的配置。以下是两种不同配置下的生命周期行为:

未配置android:configChanges

如果未在AndroidManifest.xml中为Activity配置android:configChanges属性,当手机旋转导致屏幕方向改变时,系统会认为设备配置发生了变化,从而销毁当前Activity实例并创建一个新的实例。此时,Activity的生命周期会经历以下步骤:

  1. onPause():Activity即将失去焦点,进入暂停状态。此时可以释放一些消耗CPU的资源,保存一些关键数据。
  2. onSaveInstanceState():系统调用此方法以保存Activity的当前状态。可以将需要保存的数据放入Bundle对象中,以便在Activity重新创建时恢复。
  3. onStop():Activity已经完全不可见,进入停止状态。此时可以做一些轻量级资源回收的工作。
  4. onDestroy():Activity即将被销毁,这是Activity生命周期中的最后一个方法。可以在该方法中做资源的最终回收和释放。

然后,系统会创建一个新的Activity实例,并依次调用其onCreate()onStart()onResume()方法,同时还会调用onRestoreInstanceState()方法以恢复之前保存的状态。

配置了android:configChanges

如果在AndroidManifest.xml中为Activity配置了android:configChanges属性,并包含了orientation值(可能还包括keyboardHiddenscreenSize等其他值),则当手机旋转时,系统不会销毁并重新创建Activity实例,而是会调用Activity的onConfigurationChanged()方法。此时,Activity的生命周期不会经历上述的销毁和重新创建过程,只会执行onConfigurationChanged()方法来处理配置变化。

onConfigurationChanged()方法中,可以根据需要更新Activity的布局或其他资源,以适应新的屏幕方向。

综上所述,手机旋转时Activity的生命周期行为取决于是否在AndroidManifest.xml中进行了特定的配置。未配置时,会经历销毁和重新创建的过程;配置了则只会调用onConfigurationChanged()方法。

标签:xml,生命周期,onConfigurationChanged,配置,旋转,configChanges,Activity,activity
From: https://blog.csdn.net/qq_43664361/article/details/143193724

相关文章

  • vue3.0生命周期
    最近要面试,复习一下生命周期的知识点:beforeCreate在组件实例初始化完成之后立即调用created在组件实例处理完所有与状态相关的选项后调用。当这个钩子被调用时,以下内容已经设置完成:响应式数据、计算属性、方法和侦听器。然而,此时挂载阶段还未开始,因此 $el 属性仍不可用。b......
  • 基于毕奥-萨伐尔定律的交流电机的4极旋转磁场matlab模拟与仿真
    1.课题概述基于毕奥-萨伐尔定律的交流电机的4极旋转磁场,对比不同定子半径,对比2级旋转磁场。 2.系统仿真结果 3.核心程序与模型版本:MATLAB2022a%合并位置和电流P=[xaxa_xbxb_xcxc_];I=[IaIa_IbIb_IcIc_];index=1;%初始化索引%......
  • 化繁为简,使用 ADManager Plus 简化账户生命周期管理
    在IT环境中,编排指的是对工作流、应用程序和系统的协调管理,旨在通过简化流程来优化业务性能。IT管理员可以通过编排,从单个控制台自动执行一系列任务,例如预配账户帐户、数据库管理、事件处理、应用程序和云资源管理。编排对支持分布于本地和云端的IT服务的大型工作流至关重要。......
  • React 类组件的生命周期
    React类组件的生命周期可以分成三个阶段:挂载(Mounting)阶段:当组件实例被创建并插入DOM中时,会调用的方法。更新(Updating)阶段:当组件的props或state发生变化时会调用的方法。卸载(Unmounting)阶段:当组件从DOM中移除时会调用的方法。以下是每个阶段典型的生命......
  • npm 生命周期
    npm生命周期是指在执行npm命令时,特定阶段会自动触发的脚本。这些生命周期脚本可以帮助开发者在不同的安装和管理过程中的特定时刻执行自定义命令。主要生命周期脚本以下是常见的npm生命周期脚本:preinstall:在安装依赖之前执行。install:在安装依赖时执行。pos......
  • WebGl 旋转矩阵
    旋转矩阵是一个正交矩阵,用于在二维或三维空间中描述一个坐标系绕原点的旋转。在三维空间中,旋转矩阵通常用于沿x轴、y轴或z轴进行旋转,或者沿任意给定轴线进行旋转。旋转矩阵具有一些重要性质,例如它们是正交的,即它们的共轭转置等于其逆矩阵,而且它们保持向量的长度和夹角不变。......
  • WebGl 实现图片平移、缩放和旋转
    1.图片平移在WebGL中实现图片平移,可以通过修改顶点着色器中的顶点位置来实现。平移的基本思想是将每个顶点的位置向量沿着指定的方向(通常是x轴和y轴)进行平移。在顶点着色器中,可以通过添加或减去一个统一的偏移量(uniformvariable)来实现这一点。例如,如果要在x轴和y轴上分别平移......
  • 第6天:Intent和页面导航-补充材料——`MainActivity.kt`解读
    下面是对“第6天:Intent和页面导航”该文学习的更深层次的补充材料,对MainActivity.kt文件的理解。下面对`MainActivity.kt’文件中每一行进行详细解释:packagecom.example.intentdemo定义包名:这行代码指定了当前Kotlin文件所属的包。在Android项目中,包名通常是由反向......
  • 体素化与旋转算法
    一、旋转分类目前游戏中只有绕y轴旋转的需求,因此讨论的都是基于y轴旋转的情况,所以图解都是俯视图。分单x单、双x双和单x双三类:单x单:不管怎么转占位不变双x双:占位点无法在中心,导致旋转结果偏移,主点位置不变的情况下,旋转会产生“甩动感”单x双:同双x双二、旋转算法普遍算......
  • 探索ArkWeb的奥秘:架构了解与生命周期管理
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。ArkWeb(方舟Web)是华为鸿蒙Harmon......