修复热插拔USB导致画面自动旋转问题

前言

在调试imx6q_android6.0.1时,发现当画面显示90°时热插拔USB后导致画面出现自动旋转,大概两秒中后自动恢复。

一、修改内容

--- a/frameworks/base/services/core/java/com/android/server/am/ActivityStack.java
+++ b/frameworks/base/services/core/java/com/android/server/am/ActivityStack.java
@@ -3911,7 +3911,8 @@ final class ActivityStack {
         if ((changes&(~r.info.getRealConfigChanged())) != 0 || r.forceNewConfig) {
             // Aha, the activity isn't handling the change, so DIE DIE DIE.
             r.configChangeFlags |= changes;
-            r.startFreezingScreenLocked(r.app, globalChanges);
+            //change do not freeze screen to prevent screen rotate
+            //r.startFreezingScreenLocked(r.app, globalChanges);
             r.forceNewConfig = false;
             if (r.app == null || r.app.thread == null) {
                 if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
@@ -3932,8 +3933,10 @@ final class ActivityStack {
                 // "restart!".
                 if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
                         "Config is relaunching resumed " + r);
-                relaunchActivityLocked(r, r.configChangeFlags, true);
+               //relaunchActivityLocked(r, r.configChangeFlags, true);
+               Slog.i(TAG,"don't relauch Activity when configuration changes");
                 r.configChangeFlags = 0;
+                return true;
             } else {
                 if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
                         "Config is relaunching non-resumed " + r);


总结

触摸屏插拔等导致系统全局配置更新时,app会自动旋转问题规避,具体解决办法还是得从系统方向研究,因为是规避措施,所以存在正在前台运行的app无法同步更新系统配置到最新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值