Clear bitmap references from display lists as early as possible
Bug #6555840
Apps like Google+ with large bitmaps displayed in listivews could
run into memory issues because of these references.
Change-Id: I39486bda13ce00c5a3b6481139ad54547506a8b4
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 4698203..10b8ff5 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -6800,6 +6800,8 @@
*/
public void dispatchStartTemporaryDetach() {
clearAccessibilityFocus();
+ clearDisplayList();
+
onStartTemporaryDetach();
}
@@ -11455,10 +11457,8 @@
}
mAttachInfo.mViewRootImpl.cancelInvalidate(this);
} else {
- if (mDisplayList != null) {
- // Should never happen
- mDisplayList.invalidate();
- }
+ // Should never happen
+ clearDisplayList();
}
mCurrentAnimation = null;
@@ -12236,6 +12236,13 @@
return mDisplayList;
}
+ private void clearDisplayList() {
+ if (mDisplayList != null) {
+ mDisplayList.invalidate();
+ mDisplayList.clear();
+ }
+ }
+
/**
* <p>Calling this method is equivalent to calling <code>getDrawingCache(false)</code>.</p>
*