Android onConfigurationChanged 收不到回调
我返现,90度横屏 旋转到270度横屏onConfigurationChanged 是收不到回掉的。尽管清单里面声明了什么:
android:configChanges=”orientation|keyboardHidden|navigation|screenSize|layoutDirection|smallestScreenSize|screenLayout|mnc”
没用。
那怎么办? 通过监听手机旋转,自己判断吧:
private int mIsLandRightOrientation = -1; //是否已经处于横屏状态,-1为未初始化,1为非左横屏(手机刘海朝左边的情况,即90度),2为右横屏(手机刘海朝右边的情况,及270度)private OrientationEventListener mOrientationEventListener; //旋转监听 因为异形屏需要知道横屏从90旋转到了270 而添加private Display mDisplay;mOrientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_STATUS_ACCURACY_LOW){@Overridepublic void onOrientationChanged(int orientation) {int ro = orientation % 360;// 设置横屏 260if (((ro > 260) && (ro < 315))) {//当前手机刘海方向朝左边的情况if (mIsLandRightOrientation == 2 || mIsLandRightOrientation == -1) {//如果说之前的方向是右边,往下处理 否则不处理if (getScreenRotationOnPhone() == Surface.ROTATION_90) {//如果当前屏幕的布局方向是相左,说明屏幕旋转了 那么进去处理padddingmIsLandRightOrientation = 1;adjustPadding();}}}else if((ro > 80 && ro < 135)){//手机刘海朝右边的情况if (mIsLandRightOrientation == 1 || mIsLandRightOrientation == -1) {if (getScreenRotationOnPhone() == Surface.ROTATION_270) {mIsLandRightOrientation = 2;adjustPadding();}}}}};mOrientationEventListener.enable();private int getScreenRotationOnPhone() {if (mDisplay == null) {mDisplay = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();}return mDisplay!=null ? mDisplay.getRotation():-1;}
原理就是通过监听手机旋转,然后在根据屏幕方向,精确判断手机横屏90度到270的转换。
Android onConfigurationChanged 收不到回调相关推荐
- Android开发之通过接口回调机制加载数据(源代码分享)
Android开发之通过接口回调机制加载数据的简单实现,在实际开发中通过callback方法得到网络加载的数据的使用频率远比通过直接开启线程或异步任务加载数据的频率高的多,这篇文章的代码将简单实现该机 ...
- android alarmmanager 收不到广播,android定时闹钟:Service+BroadcastReceiver+AlarmManager+NotificationManager...
在开发android的过程中,需要一个定时提醒的功能,原本以为是一个很简单的功能,但是发现网上能找到的讲解或者代码都很或多或少地缺少一部分的设置和关键代码,所以我才注册了简书账户,分享一下. 在研究的 ...
- 4.Android loader详解___回调
onLoadFinished 这个方法是在前面已创建的装载器已经完成其加载过程后被调用.这个方法保证会在应用到装载器上的数据被释放之前被调用.在此方法中,你必须删除所有对旧数据的使用(因为它将很快会被 ...
- 【Android FFMPEG 开发】C++ 回调 Java 方法 模板 ( JavaVM *vm | JNIEnv *env | jobject instance | 引用类型 | 模板代码示例 )
文章目录 I . Native 调用 Java 方法 II . JNIEnv *env 与 jobject instance III . JavaVM *vm IV . 局部引用 与 全局引用 分析 ...
- Android和Java中的回调函数
在 Android 的学习过程中遇到了回调函数,经过一段时间的理解,将自己的收获整理如下,希望对迫切希望了解这方面知识的同学有所启发. 回调函数的理解如下: 在A类中定义了一个方法,这个方法中用到了一 ...
- Android App收不到推送的消息
推送功能可以算是每个App的都会开发的基本功能了,服务端可主动向其用户推送各类消息,结合精准的用户画像分析,给合适的用户在合适的场景下推送合适的内容,大幅度提升消息点击率.用户活跃度和留存率. 推送把 ...
- Android中收货地址管理Demo
Android 收货地址管理,城市选择为省市区三级联动 最近公司在做一个电商平台,这里展示的是一个收货地址管理的功能,实现了省市区三级联动的集成,本Demo得力于网络提供的三级联动案例,特此感谢提供者 ...
- 【Android】小白进阶之回调监听机制listener
不仅是在 Android 应用层大量使用回调处理,IoT 相关硬件在设计产品时也会使用不能形式的回调处理. 1.定义监听回调接口 public interface OnTestListener {vo ...
- android 京东收货地址,手机京东商城怎么添加收货地址?
想必有很多人都使用过手机京东购物,购物就需要一个收货地址,在手机京东上,具体怎么添加一个收货地址呢?或者说,由于某些特殊的原因,比如帮别人买东西,或者自己不在原来的地方住了,需要修改原来的收货地址,这 ...
最新文章
- HTML5 的优点与缺点
- 10个随机数相加等于100
- pve 群晖 virtio速度慢_群晖DS Note高级教程——教你使用智能记事本
- 文巾解题 82. 删除排序链表中的重复元素 II
- sql 字符串比较大小_SQL 数据分析2:简单查询
- 在公司的微服务上搞破坏真是太开心了
- 6.22软件工程总结
- Flsak项目--图片验证码
- Java知多少(24)包装类、拆箱和装箱详解
- 【Flink】flink-connector-elasticsearch5与flink-connector-elasticsearch6 有什么区别
- oracle number对应java什么类型_JVM系列之数据类型
- java把字体做成滚动的_Scroll text - JS实现文字自动循环滚动效果
- 罗永浩回应“调侃”俞敏洪转行做直播;苹果3月9日举行春季发布会;CentOS推出新车载Linux发行版 | 极客头条...
- ccf分区查询_CCF CSP和CCF CCSP简介
- 打印机共享到网络访问不了计算机名,共享打印机XP访问Win7/Win10提示指定的网络名不再可用解决方法...
- 两步解决【zabbix】Time zone for PHP is not set (configuration parameter “date.timezone”)
- 有关windows10修改C盘用户中文名文件夹相关问题的具体解决方案
- 解决Windows无法访问指定设备路径或文件,您可能没有合适的权限访问这个项目
- 全新织梦DEDE CMS模板-精仿qq技术导航网站源码
- 如何实现自定义倍速播放PC端浏览器中的视频