生命周期
Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情。
例举了 7 个常用的钩子:
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()
简要说明:
onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle中可以提出用于创建该 Activity 所需的信息。
onStart():activity变为在屏幕上对用户可见时,即获得焦点时,会调用。
onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。
onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的。。
onStop():activity被停止并转为不可见阶段及后续的生命周期事件时,即失去焦点时调用。
onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。
onDestroy():activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用 finish()方法 或者系统决定停止该活动以释放资源。
横竖屏切换
1 切换到横屏
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
2 切换到竖屏,销毁了两次
onSaveInstanceState
onPause
onStop
onDestroyonCreate
onStart
onRestoreInstanceState
onResume
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
3 修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",切横屏,只销毁一次。
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
4 再切回竖屏,发现不会再打印相同信息,但多打印了一行onConfigChanged
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onConfigurationChanged
5 更改 android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",切横屏,就只打印onConfigChanged
onConfigurationChanged
6 切回竖屏
onConfigurationChanged
onConfigurationChanged
总结:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
转自:http://www.blogjava.net/lincode/archive/2011/09/16/358768.html
分享到:
相关推荐
android activity 执行屏幕横竖屏切换的时候activity声明周期执行的竖屏的时候点击横屏 09-04 15:54:27.675: I/yxd(6708): 应用程序执行了============onPause===方法===>> 09-04 15:54:27.685: I/yxd(6708): 应用...
本文为大家分享了Android横竖屏切换及其对应布局加载问题,供大家参考,具体内容如下 第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。...
Android 横竖屏切换 利用Android系统每次屏幕切换会重启Activity的特性,在OnCreat处自动加载不同显示状态下的layout。
部分网友会发现Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT,会重新切换Activity会触发一次onCreate方法,使用其他的方法同样可以实现
详细介绍了手机在切换横竖屏时Activity生命周期的变化。
android studio中 activity的当前页横竖屏切换、跳转页面后横竖屏切换以及生命周期的调用
实现在 listView中播放视频,利用 mediaPlayer + textureView 实现,支持横竖屏切换,切换操作是在同一个 activity 中进行的,类似腾讯新闻的视频播放, 实现思路可以看下我的博客: ...
关于Activity生命周期和横竖屏切换时,生命周期的执行过程,网上有很多文章。但是都写的很模糊,并且不完善。一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码...
在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。 在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入...
Activity中嵌套多个Fragment,利用ViewPager实现左右滑动,使用两个Activity实现横竖屏切换案例。横屏与竖屏布局不一样。
一、简介 二、代码 /activityLifeCycle_3Screen/AndroidManifest.xml <manifest xmlns:android=http://schemas.android.com/apk/res/android ... android:versionCode=1 ... android:targetSdkVersio
activity横竖屏切换时重新onCreate的处理。
本篇文章主要介绍了android中Activity横竖屏切换的那些事,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在做android 开发时,在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新加载画面并显示和横评一样的画面,这样会有2个问题,布局问题,在竖屏 显示的布局到横屏中由于宽和...
Android动画效果-切换Activity动画,切换Activity时的淡入淡出和缩放进入退出效果
1、新建一个Activity,并把各个生命周期打印出来 2、运行Activity,得到如下信息 onCreate–> onStart–> onResume–> 3、按crtl+f12切换成横屏时 onSaveInstanceState–> onPause–> onStop–> onDestroy–> ...
Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换,即通过在AndroidManifest.xml中设置activity中的android:screenOrientation属性值来...
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化 例如: 切换到横屏 onSaveInstanceState onPause onStop onDestroy onCreate onStart onRestoreInstanceState onResume
ConfigChanges,用于捕获手机状态的改变,当横竖屏切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就会触发回调事件onConfigurationChanged。让Activity捕捉到该事件,需要做如下步骤: 声明Activity需要捕捉的...
主要介绍了Android Activity 横竖屏切换的生命周期的相关资料,需要的朋友可以参考下