2016-11-17 110 views
1

我们为Android开发了自定义键盘,并且遇到了一个奇怪的问题。目前这个问题只发生在很少的设备和我们的登录网站上......但是它会导致我们的键盘挂起很长一段时间,最终让用户选择关闭或继续等待。超时使用Android上的自定义键盘等待IInputContextCallback

准确地说,我们有一个自定义键盘,它有一个对键输入响应时间慢的登录页面(片段web视图)。

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

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

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

所以我不知道我们做错了什么(其他键盘没有这个问题),我真的不知道我应该如何调试它。我已经尝试访问Chrome浏览器的网页,而且在启用其他键盘的情况下也没有问题,并且仍然没有问题。

任何想法如何进行将不胜感激。

+0

任何解决方案有什么发现? – Faakhir

+0

@Faakhir是的,它是在下面的答案中指定的。 – Warpzit

+0

在我的情况下,自定义键盘工作正常,而不是我的应用程序webviews,在我的应用程序键盘也与其他语言正常工作问题是与英文字母(不带Shift键), android:process =“webactivity”在我的情况下没有用。 Android 7.0也不是问题。 – Faakhir

回答

2

所以这似乎是Android 7.0引入的一个“bug”(可能与新的web客户端有关)。该错误只是在与WebView相同的过程中的自定义键盘将提供输入字段的问题。解决方案是将活动与WebView(s)放在一个单独的过程中。

示例清单:

<activity 
     android:process=":webactivity" 
     android:label="real label" 
     android:name="com.something.activity" 
     />