diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-01-12 07:58:25 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-01-12 07:58:25 +0000 |
| commit | 05c62452d90d19c1e13286157b5b84b2afbdecf8 (patch) | |
| tree | caae195454f3a4b9e31b667e89d40c11f1008685 /core/java/android/inputmethodservice/InputMethodService.java | |
| parent | d29b133e2497c6627a8410f775d20c2a54aa2503 (diff) | |
| parent | 07a7f23e36c3461268cbd28bb6779bdcf613d7ad (diff) | |
Merge "[RESTRICT AUTOMERGE] Attempt to fix exception in IMS"
Diffstat (limited to 'core/java/android/inputmethodservice/InputMethodService.java')
| -rw-r--r-- | core/java/android/inputmethodservice/InputMethodService.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 824cc19f8a60..93573d15bae0 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -523,6 +523,7 @@ public class InputMethodService extends AbstractInputMethodService { private Handler mHandler; private boolean mImeSurfaceScheduledForRemoval; private ImsConfigurationTracker mConfigTracker = new ImsConfigurationTracker(); + private boolean mDestroyed; /** * An opaque {@link Binder} token of window requesting {@link InputMethodImpl#showSoftInput} @@ -599,6 +600,11 @@ public class InputMethodService extends AbstractInputMethodService { @Override public final void initializeInternal(@NonNull IBinder token, IInputMethodPrivilegedOperations privilegedOperations, int configChanges) { + if (mDestroyed) { + Log.i(TAG, "The InputMethodService has already onDestroyed()." + + "Ignore the initialization."); + return; + } Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.initializeInternal"); mConfigTracker.onInitialize(configChanges); mPrivOps.set(privilegedOperations); @@ -1435,6 +1441,7 @@ public class InputMethodService extends AbstractInputMethodService { } @Override public void onDestroy() { + mDestroyed = true; super.onDestroy(); mRootView.getViewTreeObserver().removeOnComputeInternalInsetsListener( mInsetsComputer); |
