分享好友 移动开发首页 频道列表

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

Android开发  2015-08-30 09:430
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

查看更多关于【Android开发】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
compileSdkVersion为23以下的应用运行在Android6.0的拍照权限处理(拍照时onActivityResult的data...
compileSdkVersion为23以下的应用运行在Android6.0的拍照权限处理[拍照时onActivityResult的data返回为null的处理办法]场景还原我以前开发的一个项目中需要适配到Android6.0,主要是权限的适配,其他权限基本都还能用,就拍照的有问题,能拍照但是没有获取到

0评论2016-10-17177

安卓的Activity跳转
预计阅读时间: 8 分钟此教程纯属业余,如有言中,不甚荣幸。开发工具android studio,我们创建一个空白安卓应用。实现应用内屏幕间的跳转,以及数据传递;按钮点击事件的处理;主屏幕代码public class MainActivity extends Activity implements View.OnClick

0评论2016-09-1887

Android编程实现两个Activity之间共享数据及互相访问的方法
这篇文章主要介绍了Android编程实现两个Activity之间共享数据及互相访问的方法,简单分析了Android中Activity数据共享与访问的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

0评论2015-11-1363

Android实现Activity之间通信的方法
这篇文章主要介绍了Android实现Activity之间通信的方法,涉及Android中Activity实现数据的发送及接收相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

0评论2015-11-0865

Android中Activity常用功能设置小结(包括全屏、横竖屏等)
这篇文章主要介绍了Android中Activity常用功能设置小结(包括全屏、横竖屏等),以简单实例形式分析了Android实现全屏、竖屏及一直显示等的技巧与注意事项,需要的朋友可以参考下

0评论2015-11-0778

Android编程将Activity背景设置为墙纸的简单实现方法
这篇文章主要介绍了Android编程将Activity背景设置为墙纸的简单实现方法,涉及Android简单的属性设置及XML配置修改等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

0评论2015-11-0781

详解Activity之singletast启动模式及如何使用intent传值
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中

0评论2015-11-07133

Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法
这篇文章主要介绍了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法,涉及Android属性设置及activity操作的相关技巧,需要的朋友可以参考下

0评论2015-11-07112

android开发教程之startActivityForResult使用方法
这篇文章主要介绍了android开发教程之startActivityForResult使用方法,需要的朋友可以参考下

0评论2015-11-03150

Android中Activity启动默认不显示输入法解决方法
这篇文章主要介绍了Android中Activity启动默认不显示输入法解决方法,一般是因为包含checkbox控件导致Activity启动默认不显示输入法,本文给出了正确解决方法,需要的朋友可以参考下

0评论2015-09-1587

android使用service和activity获取屏幕尺寸的方法
这篇文章主要介绍了android使用service和activity获取屏幕尺寸的方法,实例分析了基于service和activity两种方法获取屏幕尺寸的相关技巧,非常简单实用,需要的朋友可以参考下

0评论2015-09-09129

更多推荐