Better implementation to clear display lists

Change-Id: I58f9af4bae70a8117db1455a50c0c5daf19b2f4a
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 82bdd00..cb73856 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -9974,12 +9974,16 @@
 
         destroyLayer();
 
-        if (mDisplayList != null) {
-            mDisplayList.postInvalidate(mAttachInfo.mHandler);
-        }
-
         if (mAttachInfo != null) {
+            if (mDisplayList != null) {
+                mAttachInfo.mViewRootImpl.invalidateDisplayList(mDisplayList);
+            }
             mAttachInfo.mViewRootImpl.cancelInvalidate(this);
+        } else {
+            if (mDisplayList != null) {
+                // Should never happen
+                mDisplayList.invalidate();
+            }
         }
 
         mCurrentAnimation = null;