一般情况下,在一个线程创建时他本身是不会生产他特定单一的looper的(主线程是个特例)。因此我们需要手动的把一个looper与线程相关联。其方法只需在需要关联的looper的线程中调用Looper.prepare。之后我们再调用Looper.loop启动looper。
创建handler的时候,我们需要与特定的looper绑定。这样通过handler我们就可以把message传递给特定的looper,继而传递给特定的线程。线程所需要做出何种响应需要我们在我们自定义的handler类中的handleMessage重构方法中编写。
looper和handler并非一一对应的。一个looper可以对应多个handler,而一个handler只能对应一个looper.
虽然我们可以自己创建一个新的message,
但是更加推荐的是调用handler的obtainMessage方法来获取一个message。
这个方法的作用是从系统的消息池中取出一个message,这样就可以避免message创建和销毁带来的资源浪费了。
联系客服