android4.4切换横屏的生命周期w
2015-12-07 21:24
471 查看
本来查了一下横屏切换时的生命周期,然后用自己手机测试了一下(nubia z5s,android4.4),发现和网上的不一样
http://blog.csdn.net/ryantang03/article/details/7749108
mainactivity代码
原来的
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
我测试的
1、.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行一次(不一样)
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次(一样)
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,重新调用各个生命周期,切横、竖屏时只会执行一次(不一样)
4、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法,(这和原文第三点一样)
我觉得是因为4.4加了个screenSize
http://blog.csdn.net/ryantang03/article/details/7749108
mainactivity代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i("ads", "onCreate"); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onRestoreInstanceState(savedInstanceState); Log.i("ads", "onRestoreInstanceState"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i("ads", "onStart"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i("ads", "onRestart"); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.d("ads", "onConfigurationChanged"); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.d("ads", "当前屏幕切换成横屏显示"); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { Log.d("ads", "当前屏幕切换成竖屏显示"); } } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i("ads", "onResume"); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); Log.i("ads", "onSaveInstanceState"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i("ads", "onPause"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i("ads", "onStop"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i("ads", "onDestroy"); }
原来的
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
我测试的
1、.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行一次(不一样)
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次(一样)
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,重新调用各个生命周期,切横、竖屏时只会执行一次(不一样)
4、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法,(这和原文第三点一样)
我觉得是因为4.4加了个screenSize
相关文章推荐
- Android消息机制 Handler源码分析
- 我的Android进阶之旅------>Java字符串格式化方法String.format()格式化float型时小数点变成逗号问题
- Android - Menus
- android SoundPool播放音效(二)
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- android 实现静态图片文件的手势拉伸缩小
- android 泰国/缅甸语/捷克较低,Contacts联系出现精神错乱之类的问题清单
- Android ClearEditText:输入用户名、密码错误时整体删除及输入为空时候晃动提示
- Android View绘制流程源码浅析
- [置顶] Android Studio中.9.PNG图片的应用
- Android 接口的回调机制
- Android代码编码格式的转换
- android学习笔记-接口回调简析
- Android线程之间的通讯机制Handler
- Android学习之路-fragment之三
- Android平台音频信号FFT的实现
- Android 关联suppor-V4包源码
- android SoundPool播放音效(一)
- Android listView显示SQlite
- Android 5.0——Material Design详解(动画篇)