android横竖屏切换时候Activity的生命周期

   2015-08-30 0
核心提示:曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的
1、新建一个Activity,并把各个生命周期打印出来

2、运行Activity,得到如下信息

onCreate-->
on Start-->
onResume-->

3、按crtl+f12切换成横屏时

onSaveInstanceState-->
onPause-->
on Stop-->
onDestroy-->
onCreate-->
on Start-->
onRestoreInstanceState-->
onResume-->

4、再按crtl+f12切换成竖屏时,发现打印了两次相同的log

onSaveInstanceState-->
onPause-->
on Stop-->
onDestroy-->
onCreate-->
on Start-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
on Stop-->
onDestroy-->
onCreate-->
on Start-->
onRestoreInstanceState-->
onResume-->

5、修改AndroidManifest.xml,把该Activity添加

android:configChanges="orientation",执行步骤3
onSaveInstanceState-->
onPause-->
on Stop-->
onDestroy-->
onCreate-->
on Start-->
onRestoreInstanceState-->
onResume-->

6、再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged

onSaveInstanceState-->
onPause-->
on Stop-->
onDestroy-->
onCreate-->
on Start-->
onRestoreInstanceState-->
onResume-->
onConfiguration Changed-->

7、把步骤5的android:configChanges="orientation" 改成
android:configChanges="orientation|keyboardHidden",执行步骤3,就只打印
onConfigChanged
onConfiguration Changed-->

8、执行步骤4

onConfiguration Changed-->
onConfiguration Changed-->

总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,
切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调
用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,
切屏不会重新调用各个生命周期,只会执行onConfiguration Changed方法

总结一下整个Activity的生命周期
补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命
周期不会有改变
Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState -->
onPause --> on Stop onRestart -->on Start--->onResume
Activity未被完全覆盖只是失去焦点:onPause--->onResume
 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Activity 基本生命周期
    Activity 基本生命周期
    现在讨论activity生命周期的文章已经很多了,但是有时候看得太多反而会觉得思绪很乱。这篇博的目的就是帮助你快速的理清思路,也是自己学习的一些总结。首先什么是Activity? 在很多的书籍里面将其直译为活动。因为像比如service之类的在后台跑着的服务,也可
    12-01 Activity
  • compileSdkVersion为23以下的应用运行在Android
    compileSdkVersion为23以下的应用运行在Android6.0的拍照权限处理[拍照时onActivityResult的data返回为null的处理办法]场景还原我以前开发的一个项目中需要适配到Android6.0,主要是权限的适配,其他权限基本都还能用,就拍照的有问题,能拍照但是没有获取到
    10-17 安卓开发
  • Android 研发安全 1-Activity 组件安全(上)
    Android 研发安全 1-Activity 组件安全(上)
    Activity组件是用户唯一能看见的组件,作为软件所有功能的显示载体,其安全性不言而喻。针对Activity组件安全,作为一个安卓开发者来讲需要在日常开发过程中注意两点:- Activity访问权限的控制- Activity被劫持本篇文章将分享Activity访问权限控制方面的安全
    10-09 安卓开发
  • android 面试—activity
    android 面试—activity
    本篇总结关于activity相关的面试内容。生命周期首先来看一下官网上面的关于activity的生命周期的图。 首先新建两个activity,MainActivity和BActivity,第一个activity可以跳转到BActivity,然后观察它们之间的生命周期的log public class MainActivity exten
    10-09 Activity
  • Activity到底是什么时候显示到屏幕上的呢?
    Activity到底是什么时候显示到屏幕上的呢?
    这两天我的包工头 歪龙木灵魂架构师王半仙Yrom 给我派了一个活:统计App冷启动时间。这个任务看上去不难,但是要求统计出来的时间要 准 ,要 特别准 。 意思就是,我必须要按Activity绘制到屏幕上这个时间节点作为标杆,来进行我的统计工作。毕竟如果是因为视
    10-07 Activity
  • 安卓的Activity跳转
    预计阅读时间: 8 分钟此教程纯属业余,如有言中,不甚荣幸。开发工具android studio,我们创建一个空白安卓应用。实现应用内屏幕间的跳转,以及数据传递;按钮点击事件的处理;主屏幕代码public class MainActivity extends Activity implements View.OnClick
    09-18 Activity
  • Activity - 朱利源的博客 - 博客频道 - CSDN.NET
    Activity - 朱利源的博客 - 博客频道 - CSDN.NE
    本系列主要是读书笔记,知识点百分之90来自 安卓开发艺术探索和安卓群英传,还有百分之10是自己的扩展与理解.欢迎吐槽生命周期 一.正常情况下生命周期如图正常生命周期 开起activity调用onCreate() onStart() onResume(),按下返回键 onPause() onStop() onDestr
    09-12 Activity
  • Activity的转场动画
    Activity的转场动画
    2. V4包中的ActivityOptionsCompat和 ActivityCompat2.1. makeCustomAnimation(Context context, int enterResId, int exitResId)热修复的文章仍然在写更新,希望等待热修复的亲们耐心. iphone 7 已经发布了,你会为新的iphone买单么? 我很喜欢苹果,因为它
    09-11 Activity
  • Android编程实现两个Activity之间共享数据及互
    这篇文章主要介绍了Android编程实现两个Activity之间共享数据及互相访问的方法,简单分析了Android中Activity数据共享与访问的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • Android中Service实时向Activity传递数据实例分析
    Android中Service实时向Activity传递数据实例分
    这篇文章主要介绍了Android中Service实时向Activity传递数据的方法,实例分析了Service组件基于线程操作实现数值实时传递的相关技巧,需要的朋友可以参考下
点击排行