关于EventBus
1 2
| EventBus.getDefault().register(this) EventBus.getDefault().unregister(this)
|
@Subscribe 订阅者方法
ThreadMode 决定了订阅者的行为处理在主线程还是子线程,也是就耗时操作尽量开辟子线程,避免ANR等等,一般默认就行
| 发布者 |
在主线程发送事件 |
在子线程发送事件 |
| main |
主线程 |
主线程 |
| posting |
主线程 |
子线程 |
| async |
新开一个子线程 |
新开一个子线程 |
| background |
新开一个子线程 |
子线程 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| @Subscribe(threadMode = ThreadMode.MAIN) public void MessageEventBus(EventBusMessage eventBusMessage){ tv_title.setText(eventBusMessage.Message); Log.d("eventBusThread","ThreadMode.MAIN "+Thread.currentThread().getName()); }
@Subscribe(threadMode = ThreadMode.POSTING) public void MessageEventBus1(EventBusMessage eventBusMessage){ Log.d("eventBusThread","ThreadMode.POSTING "+Thread.currentThread().getName()); }
@Subscribe(threadMode = ThreadMode.ASYNC) public void MessageEventBus2(EventBusMessage eventBusMessage){ Log.d("eventBusThread","ThreadMode.ASYNC "+Thread.currentThread().getName()); }
@Subscribe(threadMode = ThreadMode.BACKGROUND) public void MessageEventBus3(EventBusMessage eventBusMessage){ Log.d("eventBusThread","ThreadMode.BACKGROUND "+Thread.currentThread().getName()); }
|
If you like my article, you can reward me to support my writing.

wechat

alipay