Looper
  public
  
  final
  
  class
  Looper
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.os.Looper | 
Class used to run a message loop for a thread.  Threads by default do
 not have a message loop associated with them; to create one, call
 prepare() in the thread that is to run the loop, and then
 loop() to have it process messages until the loop is stopped.
 
Most interaction with a message loop is through the
 Handler class.
 
This is a typical example of the implementation of a Looper thread,
 using the separation of prepare() and loop() to create an
 initial Handler to communicate with the Looper.
 
  class LooperThread extends Thread {
      public Handler mHandler;
      public void run() {
          Looper.prepare();
          mHandler = new Handler(Looper.myLooper()) {
              public void handleMessage(Message msg) {
                  // process incoming messages here
              }
          };
          Looper.loop();
      }
  }Summary
| Public methods | |
|---|---|
| 
        
        
        
        
        
        void | 
      dump(Printer pw, String prefix)
      Dumps the state of the looper for debugging purposes. | 
| 
        
        
        static
        
        
        Looper | 
      getMainLooper()
      Returns the application's main looper, which lives in the main thread of the application. | 
| 
        
        
        
        
        
        MessageQueue | 
      getQueue()
      Gets this looper's message queue. | 
| 
        
        
        
        
        
        Thread | 
      getThread()
      Gets the Thread associated with this Looper. | 
| 
        
        
        
        
        
        boolean | 
      isCurrentThread()
      Returns true if the current thread is this looper's thread. | 
| 
        
        
        static
        
        
        void | 
      loop()
      Run the message queue in this thread. | 
| 
        
        
        static
        
        
        Looper | 
      myLooper()
      Return the Looper object associated with the current thread. | 
| 
        
        
        static
        
        
        MessageQueue | 
      myQueue()
      Return the  | 
| 
        
        
        static
        
        
        void | 
      prepare()
      Initialize the current thread as a looper. | 
| 
        
        
        static
        
        
        void | 
      prepareMainLooper()
      This method was deprecated in API level 30. The main looper for your application is created by the Android environment, so you should never need to call this function yourself. | 
| 
        
        
        
        
        
        void | 
      quit()
      Quits the looper. | 
| 
        
        
        
        
        
        void | 
      quitSafely()
      Quits the looper safely. | 
| 
        
        
        
        
        
        void | 
      setMessageLogging(Printer printer)
      Control logging of messages as they are processed by this Looper. | 
| 
        
        
        
        
        
        String | 
      toString()
      Returns a string representation of the object. | 
| Inherited methods | |
|---|---|
Public methods
dump
public void dump (Printer pw, String prefix)
Dumps the state of the looper for debugging purposes.
| Parameters | |
|---|---|
| pw | Printer: A printer to receive the contents of the dump.
 This value cannot benull. | 
| prefix | String: A prefix to prepend to each line which is printed.
 This value cannot benull. | 
getMainLooper
public static Looper getMainLooper ()
Returns the application's main looper, which lives in the main thread of the application.
| Returns | |
|---|---|
| Looper | |
getQueue
public MessageQueue getQueue ()
Gets this looper's message queue.
| Returns | |
|---|---|
| MessageQueue | The looper's message queue.
 This value cannot be null. | 
getThread
public Thread getThread ()
Gets the Thread associated with this Looper.
| Returns | |
|---|---|
| Thread | The looper's thread.
 This value cannot be null. | 
isCurrentThread
public boolean isCurrentThread ()
Returns true if the current thread is this looper's thread.
| Returns | |
|---|---|
| boolean | |
loop
public static void loop ()
Run the message queue in this thread. Be sure to call
 quit() to end the loop.
myLooper
public static Looper myLooper ()
Return the Looper object associated with the current thread. Returns null if the calling thread is not associated with a Looper.
| Returns | |
|---|---|
| Looper | |
myQueue
public static MessageQueue myQueue ()
Return the MessageQueue object associated with the current
 thread.  This must be called from a thread running a Looper, or a
 NullPointerException will be thrown.
| Returns | |
|---|---|
| MessageQueue | This value cannot be null. | 
prepare
public static void prepare ()
Initialize the current thread as a looper.
 This gives you a chance to create handlers that then reference
 this looper, before actually starting the loop. Be sure to call
 loop() after calling this method, and end it by calling
 quit().
prepareMainLooper
public static void prepareMainLooper ()
      This method was deprecated
      in API level 30.
    The main looper for your application is created by the Android environment,
   so you should never need to call this function yourself.
  
Initialize the current thread as a looper, marking it as an
 application's main looper. See also: prepare()
quit
public void quit ()
Quits the looper.
 Causes the loop() method to terminate without processing any
 more messages in the message queue.
 
 Any attempt to post messages to the queue after the looper is asked to quit will fail.
 For example, the Handler.sendMessage(Message) method will return false.
 
 If quit() or quitSafely() is called multiple times, the first call
 will have an effect and the subsequent calls will be no-ops.
 
 Using this method may be unsafe because some messages may not be delivered
 before the looper terminates.  Consider using quitSafely() instead to ensure
 that all pending work is completed in an orderly manner.
 
See also:
quitSafely
public void quitSafely ()
Quits the looper safely.
 Causes the loop() method to terminate as soon as all remaining messages
 in the message queue that are already due to be delivered have been handled.
 However pending delayed messages with due times in the future will not be
 delivered before the loop terminates.
 
 Any attempt to post messages to the queue after the looper is asked to quit will fail.
 For example, the Handler.sendMessage(Message) method will return false.
 
 If quit() or quitSafely() is called multiple times, the first call
 will have an effect and the subsequent calls will be no-ops.
 
setMessageLogging
public void setMessageLogging (Printer printer)
Control logging of messages as they are processed by this Looper. If enabled, a log message will be written to printer at the beginning and ending of each message dispatch, identifying the target Handler and message contents. Message logging introduces a performance penalty, and is disabled by default.
| Parameters | |
|---|---|
| printer | Printer: A Printer object that will receive log messages, or
 null to disable message logging. | 
toString
public String toString ()
Returns a string representation of the object.
| Returns | |
|---|---|
| String | a string representation of the object. | 
