Fix memory leak in setActionProvider() - framework edition

Caused by ActionMenuItem's SubUiVisibilityListener
not being nulled when it is replaced via setActionProvider().

BUG: 22189734
Change-Id: Id4deaa05cd5554ca7bdf969a592e4812e39dcb75
This commit is contained in:
Chris Banes
2015-06-30 11:16:37 +01:00
parent f62f4c94a3
commit c8f6ecc265
2 changed files with 9 additions and 1 deletions

View File

@@ -236,6 +236,14 @@ public abstract class ActionProvider {
mVisibilityListener = listener;
}
/**
* @hide
*/
public void reset() {
mVisibilityListener = null;
mSubUiVisibilityListener = null;
}
/**
* @hide Internal use only
*/

View File

@@ -593,7 +593,7 @@ public final class MenuItemImpl implements MenuItem {
public MenuItem setActionProvider(ActionProvider actionProvider) {
if (mActionProvider != null) {
mActionProvider.setVisibilityListener(null);
mActionProvider.reset();
}
mActionView = null;
mActionProvider = actionProvider;