在Android上使用自定义键盘在IInputContextCallback上等待超时

我们已经开发了适用于Android的自定义键盘,并且面临着一个奇怪的问题.目前,该问题仅在少数设备上以及在我们的登录网站上才会发生…但是,这导致我们的键盘挂起了很长时间,最终使用户可以选择关闭或继续等待.

确切地说,我们有一个自定义键盘,该键盘具有一个登录页面(片段Webview),该页面的按键输入响应时间较慢.

以下堆栈跟踪是重要的部分:

11-17 09:35:07.535 5935-5935/xxx W/InputConnectionWrapper.ICC: Timed out waiting on IInputContextCallback

Android源文件可以在这里读取:https://android.googlesource.com/platform/frameworks/base.git/+/b798689749c64baba81f02e10cf2157c747d6b46/core/java/com/android/internal/view/InputConnectionWrapper.java

但是问题是它正在等待某种我看不到的东西(一个辅助文件):https://android.googlesource.com/platform/frameworks/base.git/+/android-4.2.2_r1/core/java/com/android/internal/view/IInputContext.aidl

因此,我不知道我们在做什么错(其他键盘没有此问题),我也不知道该如何调试.我尝试从chrome访问网页,也没有从启用了其他键盘的应用中访问任何问题,但仍然没有问题.

任何有关如何进行的想法将不胜感激.

解决方法:

因此,这似乎是Android 7.0引入的“错误”(可能与新的Web客户端有关).该错误仅是一个自定义键盘,其处理过程与WebView将在输入字段中出现问题的过程相同.解决方案是将带有WebView的活动放在单独的过程中.

清单示例:

    <activity
        android:process=":webactivity"
        android:label="real label"
        android:name="com.something.activity"
        />
上一篇:linux-创建自定义setxkbmap选项


下一篇:WPF以编程方式锁定工作站