如何在InputMethodManager#hideSoftInputFromWindow中使用ResultReceiver

时间:2015-01-09 10:16:54

标签: android ime

我有一些代码:

inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
     @Override
     protected void onReceiveResult(int resultCode, Bundle resultData) {
          keyboardClosed();
     }
});

但是,在4.3模拟器上运行此操作时,永远不会调用onReceiveResult()方法。 我确定我做错了什么,但看不出来......

任何人都可以向我提供有关如何正确执行此操作或为何无法正常工作的一些详细信息吗?

1 个答案:

答案 0 :(得分:6)

如果ResultReceiver返回hideSoftInputFromWindow,则不会调用

false
您可以查看此值:

boolean hide = inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
    @Override
    protected void onReceiveResult(int resultCode, Bundle resultData) {
       keyboardClosed();
    }
});
if (!hide) {
    // already hidden
    keyboardClosed();
}