android之Looper详解及api详细引见,使用案例
android之Looper详解及api详细介绍,使用案例
Looper是用来为一个线程执行一个消息循环的,线程默认是没有循环消息与他们绑定到一块的,为了创建一个
,在线程中调用prepare()来运行这个循环,然后开始循环处理消息,知道这个循环结束。
大多数与消息循环交互是通过Handler()。
下面通过一个典型的线程循环的例子来说明,使用prepare()和loop()来创建一个handler来与
Looper交互。
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
}
}
常用方法:
loop()
在线程中执行消息队列,在结束时通过调用quit()。
prepare()
为当前线程提供一个Looper.
getMainLooper()
返回当前应用程序中依赖主线程的looper,
getThread()
返回和looper相关联的线程。
mylooper()
返回和当前线程关联的looper,如果没有looper与当前线程关联,则返回null。
myQueue()
返回和当前线程相关联的消息队列,使用这个方法,必须确保当前线程与looper相关联。
prepareMainLooper()
初始化与主线程相关联的looper。
Looper是用来为一个线程执行一个消息循环的,线程默认是没有循环消息与他们绑定到一块的,为了创建一个
,在线程中调用prepare()来运行这个循环,然后开始循环处理消息,知道这个循环结束。
大多数与消息循环交互是通过Handler()。
下面通过一个典型的线程循环的例子来说明,使用prepare()和loop()来创建一个handler来与
Looper交互。
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
}
}
常用方法:
loop()
在线程中执行消息队列,在结束时通过调用quit()。
prepare()
为当前线程提供一个Looper.
getMainLooper()
返回当前应用程序中依赖主线程的looper,
getThread()
返回和looper相关联的线程。
mylooper()
返回和当前线程关联的looper,如果没有looper与当前线程关联,则返回null。
myQueue()
返回和当前线程相关联的消息队列,使用这个方法,必须确保当前线程与looper相关联。
prepareMainLooper()
初始化与主线程相关联的looper。