How is a handler associated to a looper?

In the chapter, it seems like just calling new Handler() associates the handler with the current thread’s looper without any thread-specific arguments being passed to the constructor.

  1. I’m not sure I understand how it identifies what the current thread is, though.
  2. Why is calling new Handler() in specific methods (onLooperPrepared(), onCreate() ) mandatory?