I just came across some unexpected behaviour when playing around with some sample code.
As \"everybody knows\" you cannot modify UI elements from another thread, e.g
The checkThread() method of ViewRootImpl.java is responsible for throwing this exception. This check is suppressed using member mHandlingLayoutInLayoutRequest until performLayout() i.e all the initial drawing traversals are complete.
hence it throws exception only if we use delay.
Not sure if this is a bug in android or intentional :)