两张图彻底让你明白Handler机制
2018-01-04 本文已影响27人
最有文化的码农
说明:handler要声明在主线程里,并且最好为静态类,以免内存泄漏。一个主线程只有一个looper,换句话说一个android应用程序就一个looper对象,因为android的一个应用程序只有一个主线程。looper里使用Messagequeue管理message对象,message通过最终的一个handler的回调回到主线程。message的最大值是默认50个,因此mesaagequeue里也不是无限多个message
说明:这张图基本上解释了handler整个内部机制。有关细节可以把整套源码看一遍。理解起来其实也不难,可以理解上层的接口逐步传递,最终形成一个回调,和所有的android的机制一样,例如一个onclick事件。