public class HandlerThread
extends Thread
java.lang.Object | ||
↳ | java.lang.Thread | |
↳ | android.os.HandlerThread |
方便的类,用于启动一个具有活套的新线程。 然后可以使用循环来创建处理程序类。 请注意,start()仍然必须被调用。
Inherited constants |
---|
From class java.lang.Thread
|
Public constructors |
|
---|---|
HandlerThread(String name) |
|
HandlerThread(String name, int priority) 构造一个HandlerThread。 |
Public methods |
|
---|---|
Looper |
getLooper() 此方法返回与此线程关联的Looper。 |
int |
getThreadId() 返回此线程的标识符。 |
boolean |
quit() 退出处理程序线程的活套。 |
boolean |
quitSafely() 安全地退出处理程序线程的活套。 |
void |
run() 如果此线程是使用单独的 |
Protected methods |
|
---|---|
void |
onLooperPrepared() 回调方法,如果需要在Looper循环之前执行一些设置,可以显式重写。 |
Inherited methods |
|
---|---|
From class java.lang.Thread
|
|
From class java.lang.Object
|
|
From interface java.lang.Runnable
|
HandlerThread (String name, int priority)
构造一个HandlerThread。
Parameters | |
---|---|
priority |
int : The priority to run the thread at. The value supplied must be from Process and not from java.lang.Thread. |
Looper getLooper ()
此方法返回与此线程关联的Looper。 如果此线程未启动或出于任何原因isAlive()返回false,则此方法将返回null。 如果这个线程已经启动,这个方法会阻塞,直到活套已经初始化。
Returns | |
---|---|
Looper |
The looper. |
boolean quit ()
退出处理程序线程的活套。
使处理程序线程的循环程序终止而不处理消息队列中的更多消息。
在循环者被要求退出后,任何尝试将消息发送到队列都将失败。 例如, sendMessage(Message)
方法将返回false。
使用这种方法可能是不安全的,因为一些消息可能不会在循环者终止之前传递。 考虑使用quitSafely()
来代替,以确保所有待处理的工作都以有序的方式完成。
Returns | |
---|---|
boolean |
True if the looper looper has been asked to quit or false if the thread had not yet started running. |
也可以看看:
boolean quitSafely ()
安全地退出处理程序线程的活套。
一旦消息队列中所有已发送的消息都已处理完毕,就立即终止处理程序线程的活套。 未来的延迟邮件将在未来发送。
在循环者被要求退出后,任何尝试将消息发送到队列都将失败。 例如, sendMessage(Message)
方法将返回false。
如果线程尚未启动或已完成(即getLooper()
返回null),则返回false。 否则,活套要求退出并返回true。
Returns | |
---|---|
boolean |
True if the looper looper has been asked to quit or false if the thread had not yet started running. |
void run ()
如果此线程是使用单独的Runnable
运行对象构建的,则Runnable
对象的run
方法; 否则,此方法不做任何事情并返回。
Thread
子类应该重写此方法。