From d39c52f99e26b9d5de18f1115862a93241173549 Mon Sep 17 00:00:00 2001 From: Jin Dong Date: Fri, 22 Dec 2017 18:25:03 +0800 Subject: [PATCH] Fix memory leak of page "Languages & input" When enter/exit from "Languages & input" screen repeatedly, memory leak happens since InputDeviceListener is not unregistered. Listener registration is called in onPause() when exiting from the screen, but new activity is created when enter the screen and the listener registered by previous activity is not unregistered in onResume(). Bug: 72675680 Test: Manual - Repeat enter and exit "Language & input" page for several times and check if the count of activity doesn't increase. Change-Id: I8e0be0ab4b1d13d53c3868b10f409d1e06387c2f --- .../inputmethod/PhysicalKeyboardPreferenceController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java b/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java index 7b0d1cee1ac..53b03ffcadf 100644 --- a/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java +++ b/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java @@ -66,12 +66,12 @@ public class PhysicalKeyboardPreferenceController extends AbstractPreferenceCont @Override public void onPause() { - mIm.registerInputDeviceListener(this, null); + mIm.unregisterInputDeviceListener(this); } @Override public void onResume() { - mIm.unregisterInputDeviceListener(this); + mIm.registerInputDeviceListener(this, null); } @Override