android 原生代码,长按power键反复执行弹出关机对话动画bug解决

diff --git a/alps/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java b/alps/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
index 342ec4b79f..b44f516c4f 100644
--- a/alps/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
+++ b/alps/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
@@ -56,6 +56,9 @@ class GlobalActions implements GlobalActionsListener {
                 this::onGlobalActionsDismissed);
     }
 
+    public boolean isShowing(){
+        return mShowing;
+    }
     public void showDialog(boolean keyguardShowing, boolean deviceProvisioned) {
         if (DEBUG) Slog.d(TAG, "showDialog " + keyguardShowing + " " + deviceProvisioned);
         mKeyguardShowing = keyguardShowing;
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
diff --git a/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index a84013b93c..ad8b634c70 100644
--- a/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1702,12 +1702,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
     }
 
     void showGlobalActionsInternal() {
-        sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
+        
         if (mGlobalActions == null) {
             mGlobalActions = new GlobalActions(mContext, mWindowManagerFuncs);
         }
         final boolean keyguardShowing = isKeyguardShowingAndNotOccluded();
-        mGlobalActions.showDialog(keyguardShowing, isDeviceProvisioned());
+        if(mGlobalActions.isShowing()==false){
+            sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
+           mGlobalActions.showDialog(keyguardShowing, isDeviceProvisioned());
+        }
         if (keyguardShowing) {
             // since it took two seconds of long press to bring this up,
             // poke the wake lock so they have some time to see the dialog.
user2@server8:~/Prj/MT8163_8.1_GMS_XINGWANG_Cus_20190121/MT8163_8.1_GMS/alps$ 
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值