Allow previous view hierarchy to be GC'ed more quickly on rotation
Change-Id: I76215a48e76234501b7ce253dedfa449502ab88f
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index e5d2299..2281c84 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -106,6 +106,7 @@
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -1313,6 +1314,7 @@
(System.currentTimeMillis() - mAutoAdvanceSentTime));
}
mHandler.removeMessages(ADVANCE_MSG);
+ mHandler.removeMessages(0); // Remove messages sent using postDelayed()
}
}
}
@@ -1493,6 +1495,9 @@
} catch (NullPointerException ex) {
Log.w(TAG, "problem while stopping AppWidgetHost during Launcher destruction", ex);
}
+ mAppWidgetHost = null;
+
+ mWidgetsToAdvance.clear();
TextKeyListener.getInstance().release();
@@ -1511,6 +1516,11 @@
}
unregisterReceiver(mCloseSystemDialogsReceiver);
+
+ ((ViewGroup) mWorkspace.getParent()).removeAllViews();
+ mWorkspace.removeAllViews();
+ mWorkspace = null;
+ mDragController = null;
}
@Override
@@ -1977,6 +1987,7 @@
for (ItemInfo item: mDesktopItems) {
item.unbind();
}
+ mDesktopItems.clear();
}
/**