I have noticed that the main looper is called during animations, skipping over some animations if the ui thread is doing something labor intensive. One way of solving this problem is to run a thread or runnable or callable and then they join on the ui thread (automatically for callable, and manually by invoking the run on ui thread).
But does that mean that the ui thread may be interrupted during something important by the other threads? Ie if the other thread returns some data but the ui is in the middle of doing something with the old data.
Short answer: The main thread will finish what it is doing and will not be interupted, the other thread will post a runnable with the new data on the main thread and continue doing other stuff (if there are any), eventually the main thread will run the runnable containing the new data from the other thread.