diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 4e85425706158..925e78129dbed 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -336,6 +336,7 @@ public final class InputMethodManager { } case MSG_UNBIND: { final int sequence = msg.arg1; + boolean startInput = false; synchronized (mH) { if (mBindSequence == sequence) { if (false) { @@ -356,10 +357,13 @@ public final class InputMethodManager { mServedConnecting = true; } if (mActive) { - startInputInner(); + startInput = true; } } } + if (startInput) { + startInputInner(); + } return; } case MSG_SET_ACTIVE: { @@ -1209,12 +1213,13 @@ public final class InputMethodManager { mService.windowGainedFocus(mClient, rootView.getWindowToken(), focusedView != null, isTextEditor, softInputMode, first, windowFlags); - if (startInput) { - startInputInner(); - } } catch (RemoteException e) { } } + + if (startInput) { + startInputInner(); + } } /** @hide */