I was looking on the Android docs for postDelayed post delayed documentation
This is similar to another question - https://stackoverflow.com/questions/25820528/is-postdelayed-relative-to-when-message-gets-on-the-queue-or-when-its-the-actual - I had a while back but its a different situation(and worded a lot clearer in my mind)
Basically heres what the docs say for that this method - "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."
I know that every thread has a message queue, looper and handler associated with it. - What is the relationship between Looper, Handler and MessageQueue in Android?. In terms of "to be run after the specified amount of time elapses", if you pass in 0 as the argument for delayMillis and there are still messages in the message queue, will the message with 0 skip over the rest of the messages(that are currently in front of it) in the Message Queue to be directly handled by the looper? I know that looper will dispatch the message to the Handler's handleMessage() method- from How the Looper knows to send the message to Handler?. I would test this on my own but I don't really know how you would go about it.