此工作线程确实遍历其消息队列,并拉出消息并执行适当的工作。但是我也想在它闲置时将其用于其他作品。有办法吗?
private class MyWorkerThread extends Thread{
// This is worker thread handler.
public Handler workerThreadHandler;
@Override
public void run() {
// Prepare child thread Lopper object.
Looper.prepare();
// Create child thread Handler.
workerThreadHandler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(Message msg) {
// When child thread handler get message from child thread message queue.
Log.i("CHILD_THREAD", "Receive message from main thread.");
Message message = new Message();
message.what = msg.what;
// Send the message back to main thread message queue use main thread message Handler.
mainThreadHandler.sendMessage(message);
}
};
// Loop the child thread message queue.
Looper.loop();
// The code after Looper.loop() will not be executed until you call
workerThreadHandler.getLooper().quit()
Log.i("CHILD_THREAD", "This log is printed after Looper.loop() method. Only when this thread loop quit can this log be printed.");
// Send a message to main thread.
Message msg = new Message();
msg.what = CHILD_THREAD_QUIT_LOOPER;
mainThreadHandler.sendMessage(msg);
}
}