關於EventBus 的源碼解析網上有很多優秀的文章
https://www.jianshu.com/p/83e44261e095
我們這裏只需要總結歸納出 4個表 和 4種處理方式 ,可以串聯起整個EventBus的設計原理
4個表
key | value | 用途 |
---|---|---|
Event事件類型class | Event class繼承類集合 | 事件繼承發送使用 |
Event事件類型 | Subscribtion實例 | 主要的發送的表關係 通過事件類型獲取到註冊實例然後通過反射調用對應的方法 |
Subscriber | Events事件類型集合 | 註冊與反註冊使用 |
Event事件類型 | Subscriber | 粘性事件使用 |
4種處理方式
事件類型 | 實現方式 | 用途 |
---|---|---|
Main | 通過在MainThread裏面的Handler實現 | 主線程,一般更新UI |
Post | 哪裏發佈哪裏實現,線程不可控 | 不是很需要強調任務中線程 |
Aysnc | 異步線程池執行 | 後臺的耗時的 |
Backgroud | 異步的,但是通過隊列實現的串行的執行方式 | 後臺的但是要求不高 |