Class HandlerThread
- All Implemented Interfaces:
Runnable
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionThis method returns the Looper associated with this thread.protected void
Call back method that can be explicitly overridden if needed to execute some setup before Looper loops.boolean
quit()
Quits the handler thread's looper.boolean
Quits the handler thread's looper safely.void
run()
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Constructor Details
-
HandlerThread
-
-
Method Details
-
onLooperPrepared
protected void onLooperPrepared()Call back method that can be explicitly overridden if needed to execute some setup before Looper loops. -
run
public void run() -
getLooper
This method returns the Looper associated with this thread. If this thread not been started or for any reason isAlive() returns false, this method will return null. If this thread has been started, this method will block until the looper has been initialized.- Returns:
- The looper.
-
getThreadHandler
- Returns:
- a shared
Handler
associated with this thread
-
quit
public boolean quit()Quits the handler thread's looper.Causes the handler thread's looper 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.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.- Returns:
- True if the looper has been asked to quit or false if the thread had not yet started running.
- See Also:
-
quitSafely
public boolean quitSafely()Quits the handler thread's looper safely.Causes the handler thread's looper to terminate as soon as all remaining messages in the message queue that are already due to be delivered have been handled. Pending delayed messages with due times in the future will not be delivered.
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 the thread has not been started or has finished (that is if
getLooper()
returns null), then false is returned. Otherwise the looper is asked to quit and true is returned.- Returns:
- True if the looper has been asked to quit or false if the thread had not yet started running.
-