从电子邮件客户端返回后键盘未关闭

lag*_*gos 5 android android-intent android-softkeyboard

我有一个Android应用程序,通过电子邮件共享杂货清单.我通过电子邮件客户端(可能是Exchange客户端或Gmail客户端)发送列表后,我遇到了麻烦,键盘无法关闭.

我试过了:

InputMethodManager mgr = (InputMethodManager) getSystemService(
        Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editTxt.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

和许多其他方式.如果我检查键盘是否打开,它将返回,false因为它不是调用键盘的应用程序,而是电子邮件客户端.

我找到了一个解决方法,包括:

android:windowSoftInputMode="stateAlwaysHidden"
Run Code Online (Sandbox Code Playgroud)

然后该应用程序将强制关闭键盘,但每次我再次打开键盘时将继续滞后.

使用三星手机时,只有使用Gmail客户端才会出现问题.

lag*_*gos 2

找到了解决方案。几毫秒后,焦点从应用程序外部(电子邮件客户端)更改为 editText 视图。然后我就可以关闭键盘了。所以我的解决方案如下所示:

Timer timer = new Timer();
timer.schedule(new TimerTask() {

            @Override
            public void run() {
                closeKeyboard();
            }
        }, 20);
Run Code Online (Sandbox Code Playgroud)