RK Android14 设置--系统-手势--导航模式--来回切换“手势导航”和‘三按钮导航’,出现系统界面卡死

试一下,在setting 切换的时候做一个延迟(这个时间可以酌情增加减少),让他在不停切换的时候,只执行最后一次。
我试了一下是能延迟的,那可以减小出现疯狂切换的情况。
//例子延迟的是1s,延迟1s之后再切换 手势/三键

yjr@fae173:~/ANDROID14.0/packages/apps/Settings$ git diff src/com/android/settings/gestures/SystemNavigationGestureSettings.java
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 0d25190cc4..5b13ad3457 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -16,6 +16,10 @@

 package com.android.settings.gestures;

+import android.util.Log;
+import android.os.Handler;
+import android.os.Debug;
+
 import static android.os.UserHandle.USER_CURRENT;
 import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
@@ -296,6 +300,21 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i
         }
     }

+    private static Handler mHandler = new Handler();
+    private static IOverlayManager mOverlayManagerRunnable = null;
+    private static String mOverlayPackageRunnable = null;
+    private static Runnable mRunnable = new Runnable() {
+        @Override
+        public void run() {
+            Log.e("SystemNavigationGestureSettings","1216 mRunnable ----");
+           try {
+                mOverlayManagerRunnable.setEnabledExclusiveInCategory(mOverlayPackageRunnable, USER_CURRENT);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
+    };
+
     @VisibleForTesting
     static void setCurrentSystemNavigationMode(IOverlayManager overlayManager, String key) {
         String overlayPackage = NAV_BAR_MODE_GESTURAL_OVERLAY;
@@ -311,11 +330,17 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i
                 break;
         }

-        try {
+        mOverlayManagerRunnable = overlayManager;
+        mOverlayPackageRunnable = overlayPackage;
+        Log.w("SystemNavigationGestureSettings", "1216 setCurrentSystemNavigationMode ");
+        mHandler.removeCallbacks(mRunnable);
+        mHandler.postDelayed(mRunnable,1000);
+
+        /*try {
             overlayManager.setEnabledExclusiveInCategory(overlayPackage, USER_CURRENT);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
-        }
+        }*/
     }

     private void setIllustrationVideo(IllustrationPreference videoPref,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值