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
This commit is contained in:
Jin Dong
2017-12-22 18:25:03 +08:00
committed by Takamasa Kuramitsu
parent 7a65c7f279
commit d39c52f99e

View File

@@ -66,12 +66,12 @@ public class PhysicalKeyboardPreferenceController extends AbstractPreferenceCont
@Override @Override
public void onPause() { public void onPause() {
mIm.registerInputDeviceListener(this, null); mIm.unregisterInputDeviceListener(this);
} }
@Override @Override
public void onResume() { public void onResume() {
mIm.unregisterInputDeviceListener(this); mIm.registerInputDeviceListener(this, null);
} }
@Override @Override