android横竖屏切换布局闪退,Android-Activity横竖屏切换不杀死Activity 并监听横竖屏切换...
在上一篇博客,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 并监听横竖屏切换...相关推荐
- Android注册时输入字符闪退,Android开发中存在的闪退、及解决状态
1:浏览器闪退 缘由:浏览器中开启了缩小放大按钮(ZoomController),在开始进入浏览器时,缩小放大按钮会出现,并在一段时间后渐变消失,当在它彻底消失前退出浏览器,在一些android系统上 ...
- Android 监听横竖屏切换
Android 监听横竖屏切换 重写 Activity 中的 onConfigurationChanged 方法 override fun onConfigurationChanged(newConf ...
- android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...
使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...
- Xamarin Android项目真机测试闪退
Xamarin Android项目真机测试闪退 项目在模拟器中运行正常,但在真机上闪退.这是由于项目设置使用共享的Mono运行时. Visual Studio中,在项目属性-Android Optio ...
- android 闪退解决方案,Android apk无法安装及闪退问题解决办法
Android apk无法安装及闪退问题 app在部分手机上(低版本)打不开或打开就闪退的问题 之前做项目集成的是 环信的sdk ,环信的sdk 确实很好,客服 也很给力.但是在集成的过程中发现,ap ...
- android studio模拟器进去就闪退,然后提示unfortunately,xx has stopped
android studio模拟器进去就闪退,然后提示unfortunately,xx has stopped android studio模拟器进去就闪退,然后提示unfortunately,xx ...
- 解决Android接入第三方QQ登录闪退
解决Android接入第三方QQ登录闪退 1.问题 按照官方文档接入QQ登录后,模拟器上运行正常,在真机小米8(Android Q)上面的时候闪退: 报错如下: Java.lang.NoClassDe ...
- android 如何监听应用前后台切换
今天,简单讲讲android如何判断应用切换到后台和应用切换到前台. 这个其实很简单,之前需要做一个功能,当app由后台进入前台时需要完成一些逻辑操作,所以在网上查找如何判断app由后台进入前台,最终 ...
- android 监听锁屏 权限,Android中监听锁屏变化和防止锁屏
Android app中可能存在某些可视化耗时操作,需要防止锁屏. 一.监听锁屏 添加权限 首先来看如何监听锁屏,使用BroadcastReceivercaset来监听 1.锁屏监听 public c ...
最新文章
- mysql一张表最多多少索引_MySQL一个索引最多有多少个列?真实的测试例子
- 男女共厕,考验男生心理素质的时候到了......
- 滴滴试行网约车遗失物品处理规则:司机返还遗失物品将收费
- Mac下Boost环境搭建
- Docker容器服务发现方案
- Lynn/ Online digital filters for biological signals: some fast designs for a small computer
- poj 3080 Blue Jeans【字符串】
- 服务器操作系统使用相关要求,服务器操作系统使用相关要求
- ubuntu 14.04 install teamviewer
- esp8266WIFI模块教程:正点原子ATK-ESP8266进行网络通信,单片机与电脑,单片机与手机发送数据
- 安信可ESP8266开发环境搭建
- 软件测试禅道是什么?如何使用?
- cad延伸命令怎么用_原来我们都用错了CAD直线命令,你不能忽视的CAD直线绘制技巧详解...
- 朴素贝叶斯——新闻分类
- 服务器虚拟化 lpar,HMC与VIOS对新LPAR提供存储与网络虚拟化的支持
- html5+资源甘特图,VARCHART XGantt VSW资讯:HTML5甘特图中的各个资源工作时间
- Proguard混淆与Maven集成
- dq电压方程耦合项符号问题
- 微信小程序 个人收支理财记账本小程序Android hbuilderx App毕业设计
- PDF删除水印怎么在PDF编辑软件内执行
热门文章
- 云计算技术背后的天才程序员:Open VSwitch鼻祖Martin Casado
- 还驾驭不了4核? 别人已模拟出百万核心上的并行
- tcpmp 编译 源代码分析
- Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
- 缺陷的背后---LIMIT M,N 分页查找
- 网页中JS函数自动执行常用三种方法
- 下一步工作的一些思考和问题
- php安装编译时 configure: error: Cannot find OpenSSL's evp.h
- ESFramework 可复用的通信框架(序)
- CocoaPods pod install/pod update更新慢的问题