Przeglądaj źródła

优化登录验证码输入键盘弹起的延迟事件控制逻辑

Pq 1 rok temu
rodzic
commit
5432df206c

+ 12 - 7
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeInputActivity.java

@@ -13,6 +13,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.KeyboardUtils;
+import com.cooleshow.base.utils.ThreadUtils;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UiUtils;
@@ -44,6 +45,15 @@ public class VerifyCodeInputActivity extends BaseMVPActivity<ActivityInputCodeLa
     private String mPhoneNum;
     private String tenantId = UserConstants.NO_HAVE_TENANT;
 
+    private Runnable mRunnable = new Runnable() {
+        @Override
+        public void run() {
+            if (viewBinding != null && viewBinding.editCode != null) {
+                viewBinding.editCode.showSoftKeyBoard();
+            }
+        }
+    };
+
     private CountDownTimer mCountDownTimer = new CountDownTimer(TIME_COUNT_TOTAL, TIME_COUNT_SPACE) {
         @Override
         public void onTick(long millisUntilFinished) {
@@ -102,13 +112,7 @@ public class VerifyCodeInputActivity extends BaseMVPActivity<ActivityInputCodeLa
         super.onResume();
         viewBinding.editCode.setFocusable(true);
         viewBinding.editCode.setFocusableInTouchMode(true);
-        viewBinding.editCode.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                viewBinding.editCode.showSoftKeyBoard();
-            }
-        }, 200);
-
+        ThreadUtils.runOnUiThreadDelayed(mRunnable, 200);
     }
 
     private void login(String content) {
@@ -172,6 +176,7 @@ public class VerifyCodeInputActivity extends BaseMVPActivity<ActivityInputCodeLa
     @Override
     public void onDestroy() {
         super.onDestroy();
+        ThreadUtils.getMainHandler().removeCallbacks(mRunnable);
         if (mCountDownTimer != null) {
             mCountDownTimer.cancel();
             mCountDownTimer = null;