在上一篇博客,Android-Activity临时数据的保存,中讲解到,当发生横竖屏切换的时候,系统会杀死Activity并重新启动Activity

系统会杀死Activity

12-12 08:11:50.441 3347-3347/liudeli.activity D/TempDataActivity: onPause

12-12 08:11:50.441 3347-3347/liudeli.activity D/TempDataActivity: onStop

12-12 08:11:50.441 3347-3347/liudeli.activity D/TempDataActivity: onDestroy

并重新启动Activity

12-12 08:11:50.460 3347-3347/liudeli.activity D/TempDataActivity: onCreate 上次看到了223页

12-12 08:11:50.460 3347-3347/liudeli.activity D/TempDataActivity: onCreate

12-12 08:11:50.460 3347-3347/liudeli.activity D/TempDataActivity: onStart

12-12 08:11:50.460 3347-3347/liudeli.activity D/TempDataActivity: onRestoreInstanceState 上次看到了223页

12-12 08:11:50.460 3347-3347/liudeli.activity D/TempDataActivity: onResume

当横竖屏切换的时候,系统会杀死Activity并重新启动Activity,这是不合理的,但是安卓系统默认就是这样设计的

解决Activity横竖屏切换不杀死Activity 不重新启动Activity,只需在Activity节点中添加 android:configChanges="orientation|keyboardHidden|screenSize" 即可

监听横竖屏切换,为什么要监听横竖屏切换呢,因为有这样的需求:竖屏显示界面 和 横屏显示界面不一样

需要在Activity重写以下方法,即可监听横竖屏切换:

/*** 需要在Activity节点设置android:configChanges="orientation|keyboardHidden|screenSize"

* 横竖屏切换才会调用此方法,进行监听

*@paramnewConfig*/@Overridepublic voidonConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);//获取到屏幕的方向

int orientation =newConfig.orientation;switch(orientation) {//横屏

caseConfiguration.ORIENTATION_LANDSCAPE:

setContentView(R.layout.activity_temp_data_horizontal);break;//竖屏

caseConfiguration.ORIENTATION_PORTRAIT:

setContentView(R.layout.activity_temp_data);break;

}

}

activity_temp_data.xml (横屏需要的布局文件)

/>

activity_temp_data_horizontal.xml (竖屏需要的布局文件)

/>

效果:

在开发中,如果需求没有明确要指定 横屏 或 竖屏,可以直接把屏幕方向定死为 竖屏  android:screenOrientation="portrait",这样可以减少很多不必要带来的麻烦和Bug

android横竖屏切换布局闪退,Android-Activity横竖屏切换不杀死Activity 并监听横竖屏切换...相关推荐

  1. Android注册时输入字符闪退,Android开发中存在的闪退、及解决状态

    1:浏览器闪退 缘由:浏览器中开启了缩小放大按钮(ZoomController),在开始进入浏览器时,缩小放大按钮会出现,并在一段时间后渐变消失,当在它彻底消失前退出浏览器,在一些android系统上 ...

  2. Android 监听横竖屏切换

    Android 监听横竖屏切换 重写 Activity 中的 onConfigurationChanged 方法 override fun onConfigurationChanged(newConf ...

  3. android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...

    使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...

  4. Xamarin Android项目真机测试闪退

    Xamarin Android项目真机测试闪退 项目在模拟器中运行正常,但在真机上闪退.这是由于项目设置使用共享的Mono运行时. Visual Studio中,在项目属性-Android Optio ...

  5. android 闪退解决方案,Android apk无法安装及闪退问题解决办法

    Android apk无法安装及闪退问题 app在部分手机上(低版本)打不开或打开就闪退的问题 之前做项目集成的是 环信的sdk ,环信的sdk 确实很好,客服 也很给力.但是在集成的过程中发现,ap ...

  6. android studio模拟器进去就闪退,然后提示unfortunately,xx has stopped

    android studio模拟器进去就闪退,然后提示unfortunately,xx has stopped android studio模拟器进去就闪退,然后提示unfortunately,xx ...

  7. 解决Android接入第三方QQ登录闪退

    解决Android接入第三方QQ登录闪退 1.问题 按照官方文档接入QQ登录后,模拟器上运行正常,在真机小米8(Android Q)上面的时候闪退: 报错如下: Java.lang.NoClassDe ...

  8. android 如何监听应用前后台切换

    今天,简单讲讲android如何判断应用切换到后台和应用切换到前台. 这个其实很简单,之前需要做一个功能,当app由后台进入前台时需要完成一些逻辑操作,所以在网上查找如何判断app由后台进入前台,最终 ...

  9. android 监听锁屏 权限,Android中监听锁屏变化和防止锁屏

    Android app中可能存在某些可视化耗时操作,需要防止锁屏. 一.监听锁屏 添加权限 首先来看如何监听锁屏,使用BroadcastReceivercaset来监听 1.锁屏监听 public c ...

最新文章

  1. mysql一张表最多多少索引_MySQL一个索引最多有多少个列?真实的测试例子
  2. 男女共厕,考验男生心理素质的时候到了......
  3. 滴滴试行网约车遗失物品处理规则:司机返还遗失物品将收费
  4. Mac下Boost环境搭建
  5. Docker容器服务发现方案
  6. Lynn/ Online digital filters for biological signals: some fast designs for a small computer
  7. poj 3080 Blue Jeans【字符串】
  8. 服务器操作系统使用相关要求,服务器操作系统使用相关要求
  9. ubuntu 14.04 install teamviewer
  10. esp8266WIFI模块教程:正点原子ATK-ESP8266进行网络通信,单片机与电脑,单片机与手机发送数据
  11. 安信可ESP8266开发环境搭建
  12. 软件测试禅道是什么?如何使用?
  13. cad延伸命令怎么用_原来我们都用错了CAD直线命令,你不能忽视的CAD直线绘制技巧详解...
  14. 朴素贝叶斯——新闻分类
  15. 服务器虚拟化 lpar,HMC与VIOS对新LPAR提供存储与网络虚拟化的支持
  16. html5+资源甘特图,VARCHART XGantt VSW资讯:HTML5甘特图中的各个资源工作时间
  17. Proguard混淆与Maven集成
  18. dq电压方程耦合项符号问题
  19. 微信小程序 个人收支理财记账本小程序Android hbuilderx App毕业设计
  20. PDF删除水印怎么在PDF编辑软件内执行

热门文章

  1. 云计算技术背后的天才程序员:Open VSwitch鼻祖Martin Casado
  2. 还驾驭不了4核? 别人已模拟出百万核心上的并行
  3. tcpmp 编译 源代码分析
  4. Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
  5. 缺陷的背后---LIMIT M,N 分页查找
  6. 网页中JS函数自动执行常用三种方法
  7. 下一步工作的一些思考和问题
  8. php安装编译时 configure: error: Cannot find OpenSSL's evp.h
  9. ESFramework 可复用的通信框架(序)
  10. CocoaPods pod install/pod update更新慢的问题