Android软键盘无法正常工作

gol*_*ank 12 keyboard android

我有一个奇怪的问题,影响软键盘正常工作.

我的应用程序中没有一个EditText视图,或者以某种方式使用键盘,但不知何故,在几个设备上安装我的应用程序后,使用它然后返回使用设备软键盘停止工作,它正在驱动我疯了......

用户看到的是,当他/她点击软键盘中的字符按钮时,EditText中的每个应用程序都不会显示任何内容.就像我说的那样奇怪的问题会影响整个系统而且用户无法写任何东西.

我的应用程序包含所有类型的功能,所有功能都使用standered API,所以我不明白我怎么能导致这个,或者至少触发它.

当键盘不工作且用户点击键盘按钮时,您可以在logcat中看到:

WARN/IInputConnectionWrapper(1628): sendKeyEvent on inactive InputConnection
WARN/IInputConnectionWrapper(1628): getCursorCapsMode on inactive InputConnection
WARN/IInputConnectionWrapper(1628): endBatchEdit on inactive InputConnection
Run Code Online (Sandbox Code Playgroud)

InputConnection如何变为非活动状态并且有没有办法激活它?

我想知道是否有人遇到过这种问题,原因是什么?

mas*_*tak 5

看起来您的输入连接未正确关闭.我有类似的问题并按以下方式修复:

EditText editTextLogin = (EditText) findViewById(R.id.editTextLogin);
editTextLogin.requestFocus();
InputMethodManager inputManager = (InputMethodManager)context.getSystemService(INPUT_METHOD_SERVICE);
inputManager.restartInput(editTextLogin);
Run Code Online (Sandbox Code Playgroud)


Whi*_*e-E -3

1)您是否尝试过覆盖 onPause 并使用以下方法杀死应用程序的任何签名:

System.runFinalizersOnExit(true);
System.exit(1);
Run Code Online (Sandbox Code Playgroud)

我很好奇如果这没有帮助,你真的能证明是你的应用程序导致了挂断吗?

2)你自己实现任何类型的InputConnection吗?

即使不是,它可能是您的应用程序由于某种原因挂起其中一个,这里的引用也可能与您的问题有关(焦点):

*只有活动客户端的InputConnection才会接受操作。IMF 告诉每个客户端进程它是否处于活动状态,并且框架强制在非活动进程中对当前 InputConnection 的调用将被忽略。这确保当前 IME 只能将事件和文本编辑传递到用户认为处于焦点的 UI。