Somewhere in my code I will have the below code to start the execution:

handler.postDelayed(runnable, 0);

So the first method corresponding to index 0 will be called first followed by other methods. And then there will be a 500ms delay to repeat the same.

But I also want a 500ms delay between the method calls. I mean when the for loop is executed. How can I do it using only one handler and runnable? How can I induce a 500ms delay between the method calls?