2018-04-16 post(runnable) 运行在哪个线

2018-04-16  本文已影响0人  兔斯基第2号

handler post(Runable)运行在哪个线程

看下源码就很清楚了,view.post(Runnable)内部实际还是使用的handler.post(Runnable),而这个方法,内部会执行下面的方法,从而把Runnable设置为Message.callback,实际上相当于handler.sendMessage(),只是发送了一个消息,

private static Message getPostMessage(Runnable r) {

Message m = Message.obtain();

m.callback = r;

return m;

}

handler.dispatch()的时候,会调用下面的方法

message.callback.run();

就是直接调用的Runnable的run方法,并不是strat(),所以仅仅是当做一个有run()的普通类使用而已,并不是开启了一个新的线程

上一篇 下一篇

猜你喜欢

热点阅读