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

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()的普通类使用而已,并不是开启了一个新的线程

你可能感兴趣的:(2018-04-16 post(runnable) 运行在哪个线程)