1. 注解: compile'com.jakewharton:butterknife:7.0.1' ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?---------->省去FindViewByID()
2.EventBus :compile'org.greenrobot:eventbus:3.0.0'
onEvent:如果使用onEvent作為訂閱函數(shù)狈醉,那么該事件在哪個(gè)線程發(fā)布出來的坊罢,onEvent就會(huì)在這個(gè)線程中運(yùn)行岭粤,也就是說發(fā)布事件和接收事件線程在同一個(gè)線程。使用這個(gè)方法時(shí),在onEvent方法中不能執(zhí)行耗時(shí)操作,如果執(zhí)行耗時(shí)操作容易導(dǎo)致事件分發(fā)延遲。
onEventMainThread:如果使用onEventMainThread作為訂閱函數(shù),那么不論事件是在哪個(gè)線程中發(fā)布出來的册赛,onEventMainThread都會(huì)在UI線程中執(zhí)行,接收事件就會(huì)在UI線程中運(yùn)行震嫉,這個(gè)在Android中是非常有用的森瘪,因?yàn)樵贏ndroid中只能在UI線程中跟新UI,所以在onEvnetMainThread方法中是不能執(zhí)行耗時(shí)操作的票堵。
onEventBackground:如果使用onEventBackgrond作為訂閱函數(shù)扼睬,那么如果事件是在UI線程中發(fā)布出來的,那么onEventBackground就會(huì)在子線程中運(yùn)行换衬,如果事件本來就是子線程中發(fā)布出來的痰驱,那么onEventBackground函數(shù)直接在該子線程中執(zhí)行。
onEventAsync:使用這個(gè)函數(shù)作為訂閱函數(shù)瞳浦,那么無論事件在哪個(gè)線程發(fā)布担映,都會(huì)創(chuàng)建新的子線程在執(zhí)行onEventAsync.