I'm having trouble understanding the difference between calling idle() and runToEndOfTasks() on a looper.
Based on the documentation, it seems the main difference if whether the scheduler's clock is advanced (it isn't in case of idle()), but other than that it seems both will result in all scheduled Runnables to run.
Does this mean idle() runs everything except runnables scheduled via postDelayed()? What's the behavior of runToEndOfTasks() if something is repeating forever (e.g. postDelayed() called inside itself)?