Document threading limitations on various View methods
Bug #5150923

Change-Id: I765d8e4d63a1fee7a12b9c2992bec67b4b6d1131
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index ad76928..5b77cf7 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -8318,8 +8318,11 @@
     }
 
     /**
-     * Causes the Runnable to be added to the message queue.
-     * The runnable will be run on the user interface thread.
+     * <p>Causes the Runnable to be added to the message queue.
+     * The runnable will be run on the user interface thread.</p>
+     * 
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
      *
      * @param action The Runnable that will be executed.
      *
@@ -8342,9 +8345,12 @@
     }
 
     /**
-     * Causes the Runnable to be added to the message queue, to be run
+     * <p>Causes the Runnable to be added to the message queue, to be run
      * after the specified amount of time elapses.
-     * The runnable will be run on the user interface thread.
+     * The runnable will be run on the user interface thread.</p>
+     * 
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
      *
      * @param action The Runnable that will be executed.
      * @param delayMillis The delay (in milliseconds) until the Runnable
@@ -8372,7 +8378,10 @@
     }
 
     /**
-     * Removes the specified Runnable from the message queue.
+     * <p>Removes the specified Runnable from the message queue.</p>
+     * 
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
      *
      * @param action The Runnable to remove from the message handling queue
      *
@@ -8397,9 +8406,12 @@
     }
 
     /**
-     * Cause an invalidate to happen on a subsequent cycle through the event loop.
-     * Use this to invalidate the View from a non-UI thread.
+     * <p>Cause an invalidate to happen on a subsequent cycle through the event loop.
+     * Use this to invalidate the View from a non-UI thread.</p>
      *
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
+     * 
      * @see #invalidate()
      */
     public void postInvalidate() {
@@ -8407,8 +8419,11 @@
     }
 
     /**
-     * Cause an invalidate of the specified area to happen on a subsequent cycle
-     * through the event loop. Use this to invalidate the View from a non-UI thread.
+     * <p>Cause an invalidate of the specified area to happen on a subsequent cycle
+     * through the event loop. Use this to invalidate the View from a non-UI thread.</p>
+     * 
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
      *
      * @param left The left coordinate of the rectangle to invalidate.
      * @param top The top coordinate of the rectangle to invalidate.
@@ -8423,8 +8438,11 @@
     }
 
     /**
-     * Cause an invalidate to happen on a subsequent cycle through the event
-     * loop. Waits for the specified amount of time.
+     * <p>Cause an invalidate to happen on a subsequent cycle through the event
+     * loop. Waits for the specified amount of time.</p>
+     * 
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
      *
      * @param delayMilliseconds the duration in milliseconds to delay the
      *         invalidation by
@@ -8442,8 +8460,11 @@
     }
 
     /**
-     * Cause an invalidate of the specified area to happen on a subsequent cycle
-     * through the event loop. Waits for the specified amount of time.
+     * <p>Cause an invalidate of the specified area to happen on a subsequent cycle
+     * through the event loop. Waits for the specified amount of time.</p>
+     * 
+     * <p>This method can be invoked from outside of the UI thread
+     * only when this View is attached to a window.</p>
      *
      * @param delayMilliseconds the duration in milliseconds to delay the
      *         invalidation by